Refresh rollout in runAsSystem (#2164)
This commit is contained in:
committed by
GitHub
parent
172df72e4e
commit
a56cf69ccf
@@ -44,18 +44,18 @@ public class PauseRolloutGroupAction implements RolloutGroupActionEvaluator<Roll
|
|||||||
@Override
|
@Override
|
||||||
public void exec(final Rollout rollout, final RolloutGroup rolloutG) {
|
public void exec(final Rollout rollout, final RolloutGroup rolloutG) {
|
||||||
|
|
||||||
/*
|
|
||||||
refresh latest rollout state in order to escape cases when
|
|
||||||
previous group have matched error condition and paused the rollout
|
|
||||||
and this one tries to pause the rollout too but throws an exception
|
|
||||||
and rollbacks rollout processing transaction
|
|
||||||
*/
|
|
||||||
Rollout refreshedRollout = rolloutManagement.get(rollout.getId()).orElseThrow();
|
|
||||||
final JpaRolloutGroup rolloutGroup = (JpaRolloutGroup) rolloutG;
|
final JpaRolloutGroup rolloutGroup = (JpaRolloutGroup) rolloutG;
|
||||||
|
|
||||||
systemSecurityContext.runAsSystem(() -> {
|
systemSecurityContext.runAsSystem(() -> {
|
||||||
rolloutGroup.setStatus(RolloutGroupStatus.ERROR);
|
rolloutGroup.setStatus(RolloutGroupStatus.ERROR);
|
||||||
rolloutGroupRepository.save(rolloutGroup);
|
rolloutGroupRepository.save(rolloutGroup);
|
||||||
|
/*
|
||||||
|
Refresh latest rollout state in order to escape cases when
|
||||||
|
previous group have matched error condition and paused the rollout
|
||||||
|
and this one tries to pause the rollout too but throws an exception
|
||||||
|
and rollbacks rollout processing transaction
|
||||||
|
*/
|
||||||
|
final Rollout refreshedRollout = rolloutManagement.get(rollout.getId()).orElseThrow();
|
||||||
if (Rollout.RolloutStatus.PAUSED != refreshedRollout.getStatus()) {
|
if (Rollout.RolloutStatus.PAUSED != refreshedRollout.getStatus()) {
|
||||||
// if only the latest state is != paused then pause
|
// if only the latest state is != paused then pause
|
||||||
rolloutManagement.pauseRollout(rollout.getId());
|
rolloutManagement.pauseRollout(rollout.getId());
|
||||||
|
|||||||
Reference in New Issue
Block a user