-
Notifications
You must be signed in to change notification settings - Fork 209
Introduce Pause Success Action #2867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
avgustinmm
merged 4 commits into
eclipse-hawkbit:master
from
boschglobal:rollout/pause_success_action
Jan 13, 2026
Merged
Introduce Pause Success Action #2867
avgustinmm
merged 4 commits into
eclipse-hawkbit:master
from
boschglobal:rollout/pause_success_action
Jan 13, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
e278faa to
a60b82f
Compare
Signed-off-by: vasilchev <vasil.ilchev@bosch.com>
de351b9 to
c91dc1f
Compare
…ollout Fix Rollout Mgmt Resource to accept new Pause Action Signed-off-by: vasilchev <vasil.ilchev@bosch.com>
c91dc1f to
a317398
Compare
avgustinmm
requested changes
Jan 12, 2026
...-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/mapper/MgmtRolloutMapper.java
Outdated
Show resolved
Hide resolved
...-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/mapper/MgmtRolloutMapper.java
Outdated
Show resolved
Hide resolved
...ry-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java
Outdated
Show resolved
Hide resolved
...ry-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java
Outdated
Show resolved
Hide resolved
...ry-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java
Outdated
Show resolved
Hide resolved
...itory-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/scheduler/JpaRolloutExecutor.java
Outdated
Show resolved
Hide resolved
...itory-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/scheduler/JpaRolloutExecutor.java
Outdated
Show resolved
Hide resolved
...a/src/test/java/org/eclipse/hawkbit/repository/jpa/management/RolloutManagementFlowTest.java
Outdated
Show resolved
Hide resolved
...a/src/test/java/org/eclipse/hawkbit/repository/jpa/management/RolloutManagementFlowTest.java
Outdated
Show resolved
Hide resolved
...-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java
Outdated
Show resolved
Hide resolved
Contributor
|
@vasilchev check to be compliant with ECA - see https://api.eclipse.org/git/eca/status/gh/eclipse-hawkbit/hawkbit/2867 |
Signed-off-by: vasilchev <vasil.ilchev@bosch.com>
avgustinmm
reviewed
Jan 13, 2026
...c/test/java/org/eclipse/hawkbit/integration/AmqpMessageDispatcherServiceIntegrationTest.java
Outdated
Show resolved
Hide resolved
|
avgustinmm
approved these changes
Jan 13, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



Try introduce 'PAUSE' Success Action.
Idea:
Currently only 'NEXTGROUP' Success Action is available once Group Success Condition is fulfilled - start next group.
In some use-cases, Success results from Targets is not enough and external checks must be made to verify really installation was success (i.e. regression bugs - installation itself was successful but introduced regression bugs that can be seen later)
For that, we would need Success Action that could fulfill this - i.e. in case of Group Success Condition is met -> PAUSE the Rollout so that external checks can be made, after checks are ok, externally resume the Rollout so it can continue.
Current Issues found.
1.1) In case of Error Condition is fulfilled -> ErrorAction('PAUSE') is triggered and 'FINISHED' state is set to the Group (even thought there are still active Actions for this 'error' Group
1.2) In case of Success Condition is fulfilled -> SuccessAction is triggered but Group is not set to 'FINISHED' until all Actions are in terminate status - i.e. Group is left running, which means on next scheduler run it will again be evaluated for success/error conditions
It is valid to leave Groups in Running state in the case of Dynamic groups- as they should never finish - there are always Targets that will show up later and must be included and actions assigned (on periodical Rollout scheduler runs).
But in case of 'PAUSE' Success Action, Success Group that are left in RUNNING state (with still active Actions) means multiple time evaluating the success condition -> exec success action.
which leaves to flows like:
5.1) first group (that initially was success and paused the rollout) is now Finished - OK scenario - it is not evaluated anymore
5.2) first group (that initially was success and paused the rollout) is still in Running state - it is again evaluated and again PAUSE action is executed -> Not the desired result
Option 0) (in this PR)
Rollout executor overrides the Group Success Action with "NEXTGROUP" after it has executed it once (so that after external resume it continues as normal flow.
Option 1)
Introduce new Group 'Running' status that indicates it is RUNNING but already success condition + action was executed once - that way 'Success' Actions could check and decide whether to do something or not (in the case of 'PAUSE' and it sees it was already evaluated once and triggered in the past to not execute again.
It should be kind of 'Running' status so that dynamic groups are still taken into account and filled with new targets/actions
Option 2)
Introduce new Rollout Group field in db indicating success action already executed
-db migration
EDIT:
After additional review a different approach was implemented
In either case, Resume MGMT API does:
That way we do not override Success Action - i.e. copy of Rollout now works as expected.