public StageInstanceModel stage(String stageName) { return getStageHistory().byName(stageName); }
private void populateStagesWhichHaventRunFromConfig(PipelineInstanceModel instanceModel, PipelineConfig pipelineConfig) { instanceModel.getStageHistory().updateFutureStagesFrom(pipelineConfig); }
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(); }
private void populatePlaceHolderStages(PipelineInstanceModel pipeline) { StageInstanceModels stageHistory = pipeline.getStageHistory(); String pipelineName = pipeline.getName(); appendFollowingStagesFromConfig(pipelineName, stageHistory); }
public String getApprovedBy() { return getStageHistory().first().getApprovedBy(); }
private PipelineInstanceGroupModel createGroupFor(PipelineInstanceModel pipelineInstanceModel) { PipelineInstanceGroupModel group = new PipelineInstanceGroupModel(); group.getPipelineInstances().add(pipelineInstanceModel); group.getStages().addAll(pipelineInstanceModel.getStageHistory()); return group; }
private List historyAsJson(BaseCollection<PipelineInstanceModel> pipelineHistory) { List json = new ArrayList(); for (PipelineInstanceModel item : pipelineHistory) { Map<String, Object> jsonMap = new LinkedHashMap<>(); jsonMap.put("pipelineId", item.getId()); jsonMap.put("label", item.getLabel()); jsonMap.put("counterOrLabel", item.getPipelineIdentifier().instanceIdentifier()); jsonMap.put("scheduled_date", timeConverter.getHumanReadableStringWithTimeZone(item.getScheduledDate())); jsonMap.put("scheduled_timestamp", item.getScheduledDate() != null ? item.getScheduledDate().getTime() : null); jsonMap.put("buildCauseBy", item.getApprovedByForDisplay()); jsonMap.put("modification_date", getModificationDate(item)); jsonMap.put("materialRevisions", materialRevisionsJson(item)); jsonMap.put("stages", stageHistoryAsJson(item, item.getStageHistory())); jsonMap.put("revision", item.getRevisionOfLatestModification()); jsonMap.put("comment", item.getComment()); json.add(jsonMap); } return json; }
private static Consumer<OutputListWriter> getStages(PipelineInstanceModel model) { return writer -> { model.getStageHistory().forEach(stage -> { writer.addChild(childWriter -> { StageRepresenter.toJSON(childWriter, stage, model.getName(), String.valueOf(model.getCounter())); }); }); }; } }
private static Consumer<OutputListWriter> getStages(PipelineInstanceModel model) { return writer -> { model.getStageHistory().forEach(stage -> { writer.addChild(childWriter -> { StageRepresenter.toJSON(childWriter, stage, model.getName(), String.valueOf(model.getCounter())); }); }); }; } }
private void populateStageOperatePermission(PipelineInstanceModel pipelineInstanceModel, Username username) { for (StageInstanceModel stage : pipelineInstanceModel.getStageHistory()) { stage.setOperatePermission(securityService.hasOperatePermissionForStage(pipelineInstanceModel.getName(), stage.getName(), CaseInsensitiveString.str(username.getUsername()))); } }
public boolean hasSameStagesAs(PipelineInstanceModel pipelineInstanceModel) { StageInstanceModels stageHistory = pipelineInstanceModel.getStageHistory(); if (stages.size() != stageHistory.size()) { return false; } for (int i = 0; i < stages.size(); i++) { if (!equals(stages.get(i), stageHistory.get(i))) { return false; } } return true; }
public static PipelineInstanceModel custom(StageInstanceModel... stages) { PipelineInstanceModel pipelineInstanceModel = PipelineInstanceModel.createEmptyModel(); pipelineInstanceModel.setStageHistory(new StageInstanceModels()); for (StageInstanceModel stage : stages) { pipelineInstanceModel.getStageHistory().add(stage); } return pipelineInstanceModel; } }
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); }
@Test public void shouldReturnTrueIfThePipelineHasStage() { PipelineInstanceModel pim = PipelineHistoryMother.pipelineHistoryItemWithOneStage("pipeline", "stage", new Date()); assertThat(pim.hasStage(pim.getStageHistory().first().getIdentifier()), is(true)); assertThat(pim.hasStage(new StageIdentifier("pipeline",1,"1", "stagex", "2")), is(false)); }
public static PipelineInstanceModel custom(String... stageNames) { PipelineInstanceModel pipelineInstanceModel = PipelineInstanceModel.createEmptyModel(); pipelineInstanceModel.setStageHistory(new StageInstanceModels()); for (String stageName : stageNames) { StageInstanceModel stageHistoryItem = new StageInstanceModel(); stageHistoryItem.setName(stageName); pipelineInstanceModel.getStageHistory().add(stageHistoryItem); } return pipelineInstanceModel; }
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); } }
public Document toXml(XmlWriterContext writerContext) { DOMElement root = new DOMElement("pipeline"); root.addAttribute("name", pipeline.getName()).addAttribute("counter", String.valueOf(pipeline.getCounter())).addAttribute("label", pipeline.getLabel()); Document document = new DOMDocument(root); String baseUrl = writerContext.getBaseUrl(); root.addElement("link").addAttribute("rel", "self").addAttribute("href", httpUrl(baseUrl)); root.addElement("id").addCDATA(pipeline.getPipelineIdentifier().asURN()); PipelineTimelineEntry pipelineAfter = pipeline.getPipelineAfter(); if (pipelineAfter != null) { addTimelineLink(root, baseUrl, "insertedBefore", pipelineAfter); } PipelineTimelineEntry pipelineBefore = pipeline.getPipelineBefore(); if (pipelineBefore != null) { addTimelineLink(root, baseUrl, "insertedAfter", pipelineBefore); } root.addElement("scheduleTime").addText(DateUtils.formatISO8601(pipeline.getScheduledDate())); Element materials = root.addElement("materials"); for (MaterialRevision materialRevision : pipeline.getCurrentRevisions()) { populateXml(materials, materialRevision, writerContext); } Element stages = root.addElement("stages"); for (StageInstanceModel stage : pipeline.getStageHistory()) { if (! (stage instanceof NullStageHistoryItem)) { stages.addElement("stage").addAttribute("href", StageXmlViewModel.httpUrlFor(writerContext.getBaseUrl(), stage.getId())); } } root.addElement("approvedBy").addCDATA(pipeline.getApprovedBy()); return document; }