Tests for the new Dynamic Rollouts, including the new Dynamic group definition functionality (#1777)

* Added tests for the new Dynamic Rollouts, including the new Dynamic group definition functionality

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

* Refactoring

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

* Additional check before the dynamic group is triggered

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

* Refactoring

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

---------

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>
This commit is contained in:
Denislav Prinov
2024-07-19 08:25:31 +03:00
committed by GitHub
parent 56ab399493
commit 119d1b5c50
2 changed files with 153 additions and 29 deletions

View File

@@ -514,6 +514,14 @@ public abstract class JsonBuilder {
final long distributionSetId, final String targetFilterQuery, final RolloutGroupConditions conditions,
final List<String> groupJsonList, final String type, final Integer weight, final Long startAt, final Long forceTime,
final Boolean confirmationRequired) {
return rollout(name, description, groupSize, distributionSetId, targetFilterQuery, conditions, groupJsonList, type,
weight, startAt, forceTime, confirmationRequired, false, null, 0);
}
public static String rollout(final String name, final String description, final Integer groupSize,
final long distributionSetId, final String targetFilterQuery, final RolloutGroupConditions conditions,
final List<String> groupJsonList, final String type, final Integer weight, final Long startAt, final Long forceTime,
final Boolean confirmationRequired, final boolean isDynamic, final String dynamicGroupSuffix, final int dynamicGroupTargetsCount) {
final JSONObject json = new JSONObject();
try {
@@ -567,6 +575,15 @@ public abstract class JsonBuilder {
errorAction.put("expression", conditions.getErrorActionExp());
}
if (isDynamic) {
json.put("dynamic", isDynamic);
final JSONObject dynamicGroupTemplate = new JSONObject();
json.put("dynamicGroupTemplate", dynamicGroupTemplate);
dynamicGroupTemplate.put("nameSuffix", (dynamicGroupSuffix == null || dynamicGroupSuffix.isEmpty()) ? "-dynamic" : dynamicGroupSuffix);
dynamicGroupTemplate.put("targetCount", dynamicGroupTargetsCount < 0 ? 1 : dynamicGroupTargetsCount);
}
if (!CollectionUtils.isEmpty(groupJsonList)) {
final JSONArray jsonGroups = new JSONArray();
for (final String groupJson : groupJsonList) {