public StageInstanceModel byName(String name) { for (StageInstanceModel stage : this) { if (stage.getName().equals(name)) { return stage; } } return null; }
private String getPipelineInstanceModelAsKey(PipelineModel model) { final StringBuilder builder = new StringBuilder(); for (PipelineInstanceModel pim : model.getActivePipelineInstances()) { builder.append("["); builder.append(pim.getId()).append(DELIMITER); for (StageInstanceModel stageInstanceModel : pim.getStageHistory()) { builder.append(stageInstanceModel.getName()).append(DELIMITER); builder.append(stageInstanceModel.getId()).append(DELIMITER); builder.append(stageInstanceModel.getState()).append(DELIMITER); } builder.append("]"); } return builder.toString(); }
public String getPipelineStatusMessage() { StageInstanceModel latestStage = stageHistory.latestStage(); return String.format("%s: %s", latestStage.getState(), latestStage.getName()); }
private List stageHistoryAsJson(PipelineInstanceModel pipelineInstanceModel, StageInstanceModels stageHistory) { List json = new ArrayList(); for (StageInstanceModel stageHistoryItem : stageHistory) { Map<String, Object> jsonMap = new LinkedHashMap<>(); jsonMap.put("stageName", stageHistoryItem.getName()); jsonMap.put("stageId", stageHistoryItem.getId()); jsonMap.put("stageStatus", stageHistoryItem.getState().toString()); StageIdentifier stageIdentifier = new StageIdentifier(pipelineInstanceModel.getPipelineIdentifier(), stageHistoryItem.getName(), stageHistoryItem.getCounter()); jsonMap.put("stageLocator", encodeInUtf8(stageIdentifier.stageLocator())); jsonMap.put("getCanRun", Boolean.toString(stageHistoryItem.getCanRun())); jsonMap.put("getCanCancel", Boolean.toString(stageHistoryItem.getCanCancel())); jsonMap.put("scheduled", Boolean.toString(stageHistoryItem.isScheduled())); jsonMap.put("stageCounter", stageHistoryItem.getCounter()); handleApproval(stageHistoryItem, jsonMap); json.add(jsonMap); } return json; }
public String nextStageName(String stageName) { int index = indexOf(byName(stageName)); if (index > -1 && index < size() - 1) { return get(index + 1).getName(); } return null; }
private void populateCanRunStatus(Username username, PipelineInstanceModel pipelineInstanceModel) { for (StageInstanceModel stageHistoryItem : pipelineInstanceModel.getStageHistory()) { boolean canRun = scheduleService.canRun( pipelineInstanceModel.getPipelineIdentifier(), stageHistoryItem.getName(), CaseInsensitiveString.str(username.getUsername()), pipelineInstanceModel.hasPreviousStageBeenScheduled( stageHistoryItem.getName())); stageHistoryItem.setCanRun(canRun); } populatePipelineCanRunStatus(username, pipelineInstanceModel); }
private void populateStageOperatePermission(PipelineInstanceModel pipelineInstanceModel, Username username) { for (StageInstanceModel stage : pipelineInstanceModel.getStageHistory()) { stage.setOperatePermission(securityService.hasOperatePermissionForStage(pipelineInstanceModel.getName(), stage.getName(), CaseInsensitiveString.str(username.getUsername()))); } }
private void populatePreviousStageState(PipelineInstanceModel activePipeline) { if (activePipeline.isAnyStageActive()) { StageInstanceModel activeStage = activePipeline.activeStage(); StageInstanceModel latestActive = null; long id = activePipeline.getId(); do { PipelineTimelineEntry timelineEntry = pipelineTimeline.runBefore(id, new CaseInsensitiveString(activePipeline.getName())); if (timelineEntry == null) { break; } id = timelineEntry.getId(); PipelineInstanceModel instanceModel = pipelineDao.loadHistory(id); if (instanceModel != null && instanceModel.hasStageBeenRun(activeStage.getName())) { latestActive = instanceModel.getStageHistory().byName(activeStage.getName()); } } while (latestActive == null); activeStage.setPreviousStage(latestActive); } }
String stageName = runningStage.getName(); String stageCounter = runningStage.getCounter(); if (job.isRunning()) {
public static void toJSON(OutputWriter jsonOutputWriter, StageInstanceModel model, String pipelineName, String pipelineCounter) { jsonOutputWriter .addLinks(linkWriter -> { linkWriter.addLink("self", Routes.Stage.self(pipelineName, pipelineCounter, model.getName(), model.getCounter())); }) .add("name", model.getName()) .add("counter", model.getCounter()) .add("status", model.getState().name()) .add("approved_by", model.getApprovedBy()) .add("scheduled_at", model.getScheduledDate()); if (model.getPreviousStage() != null) { jsonOutputWriter.addChild("previous_stage", childWriter -> { StageRepresenter.toJSON(childWriter, model.getPreviousStage(), pipelineName, pipelineCounter); }); } } }
public void updateFutureStagesFrom(PipelineConfig pipelineConfig) { StageInstanceModel lastStage = this.last(); StageConfig nextStage = lastStage == null ? pipelineConfig.getFirstStageConfig() : pipelineConfig.nextStage(new CaseInsensitiveString(lastStage.getName())); while (nextStage != null && !this.hasStage(str(nextStage.name()))) { this.addFutureStage(str(nextStage.name()), !nextStage.requiresApproval()); nextStage = pipelineConfig.nextStage(nextStage.name()); } } }
public static void toJSON(OutputWriter jsonOutputWriter, StageInstanceModel model, String pipelineName, String pipelineCounter) { jsonOutputWriter .addLinks(linkWriter -> { linkWriter.addLink("self", Routes.Stage.self(pipelineName, pipelineCounter, model.getName(), model.getCounter())); }) .add("name", model.getName()) .add("counter", model.getCounter()) .add("status", model.getState().name()) .add("approved_by", model.getApprovedBy()) .add("scheduled_at", model.getScheduledDate()); if (model.getState().stageResult() == StageResult.Cancelled) { jsonOutputWriter.add("cancelled_by", model.getCancelledBy() == null ? "GoCD" : model.getCancelledBy()); } if (model.getPreviousStage() != null) { jsonOutputWriter.addChild("previous_stage", childWriter -> { StageRepresenter.toJSON(childWriter, model.getPreviousStage(), pipelineName, pipelineCounter); }); } } }