Ensure different group schedule and start event on rollout start (#2144)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2024-12-12 09:50:05 +02:00
committed by GitHub
parent f813be87e5
commit 1450115061
7 changed files with 37 additions and 34 deletions

View File

@@ -574,7 +574,11 @@ public class JpaRolloutExecutor implements RolloutExecutor {
private boolean ensureAllGroupsAreScheduled(final Rollout rollout) {
final JpaRollout jpaRollout = (JpaRollout) rollout;
final List<JpaRolloutGroup> groupsToBeScheduled = rolloutGroupRepository.findByRolloutAndStatus(rollout, RolloutGroupStatus.READY);
if (groupsToBeScheduled.isEmpty()) {
return true;
}
final long scheduledGroups = groupsToBeScheduled.stream().filter(group -> scheduleRolloutGroup(jpaRollout, group)).count();
entityManager.flush(); // flush groups so scheduled group to start to have scheduled event
return scheduledGroups == groupsToBeScheduled.size();
}

View File

@@ -1816,7 +1816,7 @@ class RolloutManagementTest extends AbstractJpaIntegrationTest {
@Expect(type = RolloutCreatedEvent.class, count = 1),
@Expect(type = RolloutUpdatedEvent.class, count = 6),
@Expect(type = RolloutDeletedEvent.class, count = 1),
@Expect(type = RolloutGroupUpdatedEvent.class, count = 10),
@Expect(type = RolloutGroupUpdatedEvent.class, count = 11),
@Expect(type = RolloutGroupCreatedEvent.class, count = 5) })
void deleteRolloutWhichHasBeenStartedBeforeIsSoftDeleted() {
final int amountTargetsForRollout = 10;