/** * Sets condition defaults. * * @return the builder itself */ public RolloutGroupConditionBuilder withDefaults() { successCondition(RolloutGroupSuccessCondition.THRESHOLD, "50"); successAction(RolloutGroupSuccessAction.NEXTGROUP, ""); errorCondition(RolloutGroupErrorCondition.THRESHOLD, "50"); errorAction(RolloutGroupErrorAction.PAUSE, ""); return this; } }
/** * Builds a group definition from this group row * * @return the RolloutGroupCreate definition */ public RolloutGroupCreate getGroupEntity() { final RolloutGroupConditionBuilder conditionBuilder = new RolloutGroupConditionBuilder() .successAction(RolloutGroup.RolloutGroupSuccessAction.NEXTGROUP, null) .successCondition(RolloutGroup.RolloutGroupSuccessCondition.THRESHOLD, triggerThreshold.getValue()); if (!StringUtils.isEmpty(errorThreshold.getValue())) { conditionBuilder .errorCondition(RolloutGroup.RolloutGroupErrorCondition.THRESHOLD, errorThreshold.getValue()) .errorAction(RolloutGroup.RolloutGroupErrorAction.PAUSE, null); } final String percentageString = targetPercentage.getValue().replace(",", "."); final Float percentage = Float.parseFloat(percentageString); return entityFactory.rolloutGroup().create().name(groupName.getValue()).description(groupName.getValue()) .targetFilterQuery(getTargetFilterQuery()).targetPercentage(percentage) .conditions(conditionBuilder.build()); }
/** * Builds a group definition from this group row * * @return the RolloutGroupCreate definition */ public RolloutGroupCreate getGroupEntity() { final RolloutGroupConditionBuilder conditionBuilder = new RolloutGroupConditionBuilder() .successAction(RolloutGroup.RolloutGroupSuccessAction.NEXTGROUP, null) .successCondition(RolloutGroup.RolloutGroupSuccessCondition.THRESHOLD, triggerThreshold.getValue()); if (!StringUtils.isEmpty(errorThreshold.getValue())) { conditionBuilder .errorCondition(RolloutGroup.RolloutGroupErrorCondition.THRESHOLD, errorThreshold.getValue()) .errorAction(RolloutGroup.RolloutGroupErrorAction.PAUSE, null); } final String percentageString = targetPercentage.getValue().replace(",", "."); final Float percentage = Float.parseFloat(percentageString); return entityFactory.rolloutGroup().create().name(groupName.getValue()).description(groupName.getValue()) .targetFilterQuery(getTargetFilterQuery()).targetPercentage(percentage) .conditions(conditionBuilder.build()); }
final String successCondition, final String errorCondition) { final RolloutGroupConditions conditions = new RolloutGroupConditionBuilder().withDefaults() .successCondition(RolloutGroupSuccessCondition.THRESHOLD, successCondition) .errorCondition(RolloutGroupErrorCondition.THRESHOLD, errorCondition) .errorAction(RolloutGroupErrorAction.PAUSE, null).build();
private Rollout saveRollout() { final Long distributionId = (Long) distributionSet.getValue(); final int amountGroup = Integer.parseInt(noOfGroups.getValue()); final int errorThresholdPercent = getErrorThresholdPercentage(amountGroup); final RolloutGroupConditions conditions = new RolloutGroupConditionBuilder() .successAction(RolloutGroupSuccessAction.NEXTGROUP, null) .successCondition(RolloutGroupSuccessCondition.THRESHOLD, triggerThreshold.getValue()) .errorCondition(RolloutGroupErrorCondition.THRESHOLD, String.valueOf(errorThresholdPercent)) .errorAction(RolloutGroupErrorAction.PAUSE, null).build(); final RolloutCreate rolloutCreate = entityFactory.rollout().create().name(rolloutName.getValue()) .description(description.getValue()).set(distributionId).targetFilterQuery(getTargetFilterQuery()) .actionType(getActionType()).forcedTime(getForcedTimeStamp()); if (AutoStartOptionGroupLayout.AutoStartOption.AUTO_START.equals(getAutoStartOption())) { rolloutCreate.startAt(System.currentTimeMillis()); } if (AutoStartOptionGroupLayout.AutoStartOption.SCHEDULED.equals(getAutoStartOption())) { rolloutCreate.startAt(getScheduledStartTime()); } if (isNumberOfGroups()) { return rolloutManagement.create(rolloutCreate, amountGroup, conditions); } else if (isGroupsDefinition()) { final List<RolloutGroupCreate> groups = defineGroupsLayout.getSavedRolloutGroups(); return rolloutManagement.create(rolloutCreate, groups, conditions); } throw new IllegalStateException("Either of the Tabs must be selected"); }
private Rollout saveRollout() { final Long distributionId = (Long) distributionSet.getValue(); final int amountGroup = Integer.parseInt(noOfGroups.getValue()); final int errorThresholdPercent = getErrorThresholdPercentage(amountGroup); final RolloutGroupConditions conditions = new RolloutGroupConditionBuilder() .successAction(RolloutGroupSuccessAction.NEXTGROUP, null) .successCondition(RolloutGroupSuccessCondition.THRESHOLD, triggerThreshold.getValue()) .errorCondition(RolloutGroupErrorCondition.THRESHOLD, String.valueOf(errorThresholdPercent)) .errorAction(RolloutGroupErrorAction.PAUSE, null).build(); final RolloutCreate rolloutCreate = entityFactory.rollout().create().name(rolloutName.getValue()) .description(description.getValue()).set(distributionId).targetFilterQuery(getTargetFilterQuery()) .actionType(getActionType()).forcedTime(getForcedTimeStamp()); if (AutoStartOptionGroupLayout.AutoStartOption.AUTO_START.equals(getAutoStartOption())) { rolloutCreate.startAt(System.currentTimeMillis()); } if (AutoStartOptionGroupLayout.AutoStartOption.SCHEDULED.equals(getAutoStartOption())) { rolloutCreate.startAt(getScheduledStartTime()); } if (isNumberOfGroups()) { return rolloutManagement.create(rolloutCreate, amountGroup, conditions); } else if (isGroupsDefinition()) { final List<RolloutGroupCreate> groups = defineGroupsLayout.getSavedRolloutGroups(); return rolloutManagement.create(rolloutCreate, groups, conditions); } throw new IllegalStateException("Either of the Tabs must be selected"); }
final String successCondition, final String errorCondition) { final RolloutGroupConditions conditions = new RolloutGroupConditionBuilder().withDefaults() .successCondition(RolloutGroupSuccessCondition.THRESHOLD, successCondition) .errorCondition(RolloutGroupErrorCondition.THRESHOLD, errorCondition) .errorAction(RolloutGroupErrorAction.PAUSE, null).build();
private Rollout createRolloutEntity() { testdataFactory.createTargets(20, "exampleTarget"); final Rollout rollout = rolloutManagement.create( entityFactory.rollout().create().name("exampleRollout") .targetFilterQuery("controllerId==exampleTarget*").set(testdataFactory.createDistributionSet()), 10, new RolloutGroupConditionBuilder().withDefaults() .successCondition(RolloutGroupSuccessCondition.THRESHOLD, "10").build()); // Run here, because Scheduler is disabled during tests rolloutManagement.handleRollouts(); return rolloutManagement .update(entityFactory.rollout().update(rollout.getId()).description("exampleDescription")); }
static RolloutGroupConditions fromRequest(final AbstractMgmtRolloutConditionsEntity restRequest, final boolean withDefaults) { final RolloutGroupConditionBuilder conditions = new RolloutGroupConditionBuilder(); if (withDefaults) { conditions.withDefaults(); } if (restRequest.getSuccessCondition() != null) { conditions.successCondition(mapFinishCondition(restRequest.getSuccessCondition().getCondition()), restRequest.getSuccessCondition().getExpression()); } if (restRequest.getSuccessAction() != null) { conditions.successAction(map(restRequest.getSuccessAction().getAction()), restRequest.getSuccessAction().getExpression()); } if (restRequest.getErrorCondition() != null) { conditions.errorCondition(mapErrorCondition(restRequest.getErrorCondition().getCondition()), restRequest.getErrorCondition().getExpression()); } if (restRequest.getErrorAction() != null) { conditions.errorAction(map(restRequest.getErrorAction().getAction()), restRequest.getErrorAction().getExpression()); } return conditions.build(); }
.targetFilterQuery("name==targets-1*").targetPercentage(percentTargetsInGroup1) .conditions(new RolloutGroupConditionBuilder() .successCondition(RolloutGroupSuccessCondition.THRESHOLD, "90") .successAction(RolloutGroupSuccessAction.NEXTGROUP, "") .errorCondition(RolloutGroupErrorCondition.THRESHOLD, "30") final String targetFilter = "id==targets-*"; final RolloutGroupConditions rolloutGroupConditions = new RolloutGroupConditionBuilder() .successCondition(RolloutGroupSuccessCondition.THRESHOLD, "50") .successAction(RolloutGroupSuccessAction.NEXTGROUP, "") .errorCondition(RolloutGroupErrorCondition.THRESHOLD, "80")
final String targetFilter = "id==targets-*"; final RolloutGroupConditions rolloutGroupConditions = new RolloutGroupConditionBuilder() .successCondition(RolloutGroupSuccessCondition.THRESHOLD, "50") .successAction(RolloutGroupSuccessAction.NEXTGROUP, "") .errorCondition(RolloutGroupErrorCondition.THRESHOLD, "80")