/** * Always run the GenerateCanaryAnalysisResultStage. */ private void addAlwaysRunResultStage(@Nonnull Stage parent, @Nonnull StageGraphBuilder graph) { graph.append(stage -> { stage.setType(GenerateCanaryAnalysisResultStage.STAGE_TYPE); stage.setName(GenerateCanaryAnalysisResultStage.STAGE_DESCRIPTION); stage.setContext(parent.getContext()); }); }
graph.append(stage -> { stage.setType(WaitStage.STAGE_TYPE); stage.setName("Warmup Wait"); stage.getContext().put("waitTime", canaryAnalysisExecutionRequest.getBeginCanaryAnalysisAfterAsDuration().getSeconds()); }); graph.append(stage -> { stage.setType(WaitStage.STAGE_TYPE); stage.setName("Interval Wait #" + index); stage.getContext().put("waitTime", analysisInterval.getSeconds()); }); stage.setName(RunCanaryStage.STAGE_NAME_PREFIX + index); stage.getContext().putAll(kayentaObjectMapper.convertValue(runCanaryContext, new TypeReference<HashMap<String,Object>>() {}));
/** * Always run the GenerateCanaryAnalysisResultStage. */ private void addAlwaysRunResultStage(@Nonnull Stage parent, @Nonnull StageGraphBuilder graph) { graph.append(stage -> { stage.setType(GenerateCanaryAnalysisResultStage.STAGE_TYPE); stage.setName(GenerateCanaryAnalysisResultStage.STAGE_DESCRIPTION); stage.setContext(parent.getContext()); }); }
@Override public void addAdditionalBeforeStages( @Nonnull Stage parent, @Nonnull StageGraphBuilder graph ) { if (Objects.equals(parent.getContext().get("allowDeleteActive"), true)) { Map<String, Object> context = new HashMap<>(parent.getContext()); context.put("remainingEnabledServerGroups", parent.getContext().get("shrinkToSize")); context.put("preferLargerOverNewer", parent.getContext().get("retainLargerOverNewer")); context.put("continueIfClusterNotFound", Objects.equals(parent.getContext().get("shrinkToSize"), 0)); // We don't want the key propagated if interestingHealthProviderNames isn't defined, since this prevents // health providers from the stage's 'determineHealthProviders' task to be added to the context. if (parent.getContext().get("interestingHealthProviderNames") != null) { context.put("interestingHealthProviderNames", parent.getContext().get("interestingHealthProviderNames")); } graph.add((it) -> { it.setType(disableClusterStage.getType()); it.setName("disableCluster"); it.setContext(context); }); } } }
stage.setRefId(map.get(prefix + "refId")); stage.setType(map.get(prefix + "type")); stage.setName(map.get(prefix + "name")); stage.setStartTime(NumberUtils.createLong(map.get(prefix + "startTime"))); stage.setEndTime(NumberUtils.createLong(map.get(prefix + "endTime")));
graph.append(stage -> { stage.setType(WaitStage.STAGE_TYPE); stage.setName("Warmup Wait"); stage.getContext().put("waitTime", canaryAnalysisExecutionRequest.getBeginCanaryAnalysisAfterAsDuration().getSeconds()); }); graph.append(stage -> { stage.setType(WaitStage.STAGE_TYPE); stage.setName("Interval Wait #" + index); stage.getContext().put("waitTime", analysisInterval.getSeconds()); }); stage.setName(RunCanaryStage.STAGE_NAME_PREFIX + index); stage.getContext().putAll(kayentaObjectMapper.convertValue(runCanaryContext, new TypeReference<HashMap<String,Object>>() {}));