* added methods to unassign by multiple ds
* deprecated toggle assigments - too complex to undestand
* deprecated unassign (management) of single ds - in favour of methods with multiple ds
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* added methods to unassign by multiple controller ids
* deprecated toggle assigments - too complex to undestand
* deprecated unassign (management) of single controller id - in favour of methods with controller ids
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
when in StartNextGroupRolloutGroupSuccessAction#startNextGroup:
1. start all scheduled actions
2. if started are > 0 -> RUNNING, otherwise -> FINISHED (if not dynamic rollout)
what could possibly happen is that at same time:
* because of a success condition met the JpaRolloutsExecutor triggers start the group
* user triggers start of the next group (via RolloutsManagement#triggerNextGroup)
then it could:
* the 'first' one succeeds to start next group
* the second attempts to start it (JpaRolloutsExecutor found the previous had met the success condition or trigger next found it SCHEDULED and next to run)
* the second finds no scheduled actions (just running) and decides there are no actions. So, it assumes (wrongly) no actions in group - and set it as FINISHED
This way we could have FINISHED group with still running actions
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* Quota must be checked with conditions over incoming status, not current persisted in db
* Fix Download_Only case where DOWNLOADED is threated as 'final'.
Fix ci build tests.
* Review findings
Adding a method with:
* optimized payload - just controller ids
* no response payload - not needed for that use-case
* targeting - thousands of targets tagged at once
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
At the moment such unused are removed for "tag!=1 and tag==2" but not for "tag==2 and tag!=1"
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* Fix RSQL filter for no target tag and OR
* add test for such filter
* Clean up the code
keeps the legacy Rsql Visitor which could be used with hawkbit.rsql.legacyRsqlVisitor=true
---------
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This functionallity seems to get via AMQP (after some authentication)
a private (wihtout need of authentication) url to an artifact assigned
to the controller.
By default, DDI or DMF shall provide proper urls (for direct download)
to devices and if they have to be without authentication this shall be
solved in different ways - for instance separate download server providing
dedicated private / signed urls.
This functinallity is not a real hawkBit part but more like something
intended to solve some edge cases.
Since it is complicated, heeds support, doesn't solve wide spread use
cases, and could be achieved with other means - better to be removed.
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* involve targets into dynamic rollouts eagerly - doesn't wait for dynamic group to become running in order to involve devices
* adds trottling for involving targes into dynamic groups
* small style refactoring
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com
* feat: allow a target to set offline assigned distribution set
Signed-off-by: Florian Bezannier <florian.bezannier@hotmail.fr>
* refacto: apply @avgustinmm recommendation
* docs: Mark update offline API as experimental
---------
Signed-off-by: Florian Bezannier <florian.bezannier@hotmail.fr>