public StageInstanceModel activeStage() { for (StageInstanceModel stageInstanceModel : stageHistory) { if (stageInstanceModel.getState().isActive()) return stageInstanceModel; } return null; }
public boolean isAnyStageActive() { for (StageInstanceModel stage : stageHistory) { if (stage.getState().isActive()) { return true; } } return false; }
public boolean needsApproval() { return approvedBy == null && getState().completed(); }
public boolean getCanCancel() { return operatePermission && getState().isActive(); }
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 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); }); } } }
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); }); } } }