* 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>
* 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>
* 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>
* Remove target tag to target reference
it is not used and could lead to extensive memory usage if JPA provider load targets while loading tags
Also, remove search field controller id as not meaningful
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* Fix review findings
---------
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
it is not used and could lead to extensive memory usage if JPA provider load targets while loading types
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* Improve building of SQL from an RSQL query
* ignore case behavior could be disabled
* like is used only when needed
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* Inlining of some methods and unified IN build + fix case
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* Implement more flexible ignore case configuration
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
---------
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
1. Add support in REST and Mgmt API for dynamic group template
2. If present - groups follows the pattern of this template, otherwise - the last static group
3. This allows to create pure dynamic rollout with 0 static groups - auto assignment equivalent with groups
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
* adds PUT method for updating name and description of a rollout
* restrict RolloutUpdate to changing only name and description
* small refactoring
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
These fields also could lead to big memory usage if the JPA provider doesn't get LAZY hint
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
tags the implicit lock is skipped on are configured via
RepositoryProperties.skipImplicitLockForTags list.
By default skip tags are the ones with names:
"skip-implicit-lock", "skip_implicit_lock", "SKIP_IMPLICIT_LOCK", "SKIP-IMPLICIT-LOCK"
+ this commit centralize the implicit lock enable/disable logic
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
Additionally,
* removed DistributionSet.getAutoAssignFilters and
* removed SoftwareModule.getAssignedTo both are not used and exposed via Mgmt API.
Maybe, if needed, they could be returned back along with exposing them via Mgmt API.
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>