public boolean removeItem(final PipelineExecutionTraceKey pipelineExecutionTraceKey) { final Optional<RuntimePresenter> value = currentItems.stream() .filter(presenter -> !presenter.getItem().isRuntime() && presenter.getItem().getPipelineTrace() != null && pipelineExecutionTraceKey.equals(presenter.getItem().getPipelineTrace().getKey())) .findFirst(); value.ifPresent(this::removeItem); return value.isPresent(); }
private void setupPipelineTrace(RuntimeListItem item) { PipelineExecutionTrace trace = item.getPipelineTrace(); String itemLabel = item.getItemLabel(); String pipelineName = trace.getPipeline().getKey().getId(); String createdDate = ""; view.setup(itemLabel, createdDate, pipelineName); setupPipeline(trace); processPipelineStatus(trace.getPipelineStatus()); }
protected PipelineExecutionTrace mockPipelineExecutionTrace(String executionId, Pipeline pipeline, PipelineStatus initialPipelineStatus, PipelineStatus initialStagesStatus) { PipelineExecutionTrace trace = new PipelineExecutionTrace(new PipelineExecutionTraceKey(executionId)); trace.setPipeline(pipeline); trace.setPipelineStatus(initialPipelineStatus); pipeline.getStages().forEach(stage -> trace.setStageStatus(stage.getName(), initialStagesStatus)); return trace; } }
private void assertPipelineTrace(PipelineExecutionTrace trace) { assertEquals(PIPELINE_ID, trace.getPipeline().getKey().getId()); assertEquals(PIPELINE_EXECUTION_ID, trace.getKey().getId()); assertEquals(PipelineStatus.RUNNING, trace.getPipelineStatus()); assertEquals(stageItemList.getItems().size(), trace.getPipeline().getStages().size()); for (int i = 0; i < STAGE_ITEMS_COUNT; i++) { PipelineStageItem stageItem = stageItemList.getItems().get(i); Stage stage = trace.getPipeline().getStages().get(i); assertEquals(stageItem.getName(), stage.getName()); assertEquals(stageItem.getStatus(), trace.getStageStatus(stage.getName()).name()); assertEquals(stageItem.getErrorMessage(), trace.getStageError(stage.getName())); } }
pipelineTrace = new PipelineExecutionTrace(new PipelineExecutionTraceKey(item.getPipelineExecutionId())); pipelineTrace.setPipelineStatus(transformToPipelineStatus(item.getPipelineStatus())); pipelineTrace.setPipelineError(new PipelineError(item.getPipelineError(), item.getPipelineErrorDetail())); item.getPipelineStageItems().getItems() pipeline.addStage(new Stage(pipeline.getKey(), stage.getName())); pipelineTrace.setStageStatus(stage.getName(), transformToPipelineStatus(stage.getStatus())); pipelineTrace.setStageError(stage.getName(), new PipelineError(stage.getStageError(), stage.getStageErrorDetail())); pipelineTrace.setPipeline(pipeline); } else { pipelineTrace = null;
/** * an item with a pipeline execution trace was initially set and a new stage status not yet drawn has changed. */ @Test public void testOnStageStatusChangeNewStageChanged() { preparePipelineExecutionTraceSetup(); RuntimeListItem item = new RuntimeListItem(RUNTIME_NAME, trace); //setup the presenter. presenter.setup(item); int initialStagePresentersSize = stagePresenters.size(); //emulate the next stage consecutive stage finishing. Stage stage = item.getPipelineTrace().getPipeline().getStages().get(displayableStages.size()); presenter.onStageStatusChange(new StageStatusChangeEvent(trace.getKey(), stage.getName(), PipelineStatus.RUNNING)); //an additional stage was added. verify(stagePresenterInstance, times(initialStagePresentersSize + 1)).get(); //the newly stage is set to EXECUTING in the UI StagePresenter stagePresenter = stagePresenters.get(stagePresenters.size() - 1); verify(stagePresenter, times(1)).setup(stage); verify(stagePresenter, times(1)).setState(State.EXECUTING); }
stagePresenter.setState(buildStageState(event.getStatus())); } else { Stage stage = new Stage(item.getPipelineTrace().getPipeline().getKey(), event.getStage()); PipelineStatus stageStatus = event.getStatus(); stagePresenter); trace.setStageStatus(event.getStage(), event.getStatus());
private void setupPipeline(final PipelineExecutionTrace trace) { clearPipeline(); boolean showStep = true; Pipeline pipeline = trace.getPipeline(); for (int i = 0; showStep && i < pipeline.getStages().size(); i++) { Stage stage = pipeline.getStages().get(i); PipelineStatus stageStatus = trace.getStageStatus(stage.getName()); showStep = showStage(stageStatus); if (showStep) { if (i > 0) { TransitionPresenter transitionPresenter = newTransitionPresenter(); currentTransitions.add(transitionPresenter); pipelinePresenter.addStage(transitionPresenter.getView()); } final StagePresenter stagePresenter = newStagePresenter(); stagePresenter.setup(stage); stagePresenter.setState(buildStageState(stageStatus)); pipelinePresenter.addStage(stagePresenter.getView()); currentStages.add(stage); stagePresenters.put(stage, stagePresenter); } } }
private void setupRuntime(RuntimeListItem item) { String itemLabel = item.getItemLabel(); String pipelineName = SYSTEM_PIPELINE_NAME; String createdDate = item.getRuntime().getCreatedDate(); String endpoint = ""; Runtime runtime = item.getRuntime(); PipelineExecutionTrace trace = runtime.getPipelineTrace(); if (trace != null) { pipelineName = trace.getPipeline().getKey().getId(); setupPipeline(trace); } view.setup(itemLabel, createdDate, pipelineName); if (runtime.getEndpoint() != null) { endpoint = runtime.getEndpoint(); } view.setEndpoint(endpoint); processRuntimeStatus(runtime); }
protected void preparePipelineExecutionTraceSetup() { Pipeline pipeline = mockPipeline(PIPELINE_NAME, STAGE_NUMBER); trace = mockPipelineExecutionTrace(EXECUTION_ID, pipeline, PipelineStatus.RUNNING, PipelineStatus.SCHEDULED); //set an arbitrary number of consecutive stages as finished and the last as running. displayableStages = new ArrayList<>(); int finishedStages = 5; for (int i = 0; i < finishedStages; i++) { trace.setStageStatus(pipeline.getStages().get(i).getName(), PipelineStatus.FINISHED); displayableStages.add(pipeline.getStages().get(i)); } trace.setStageStatus(pipeline.getStages().get(finishedStages).getName(), PipelineStatus.RUNNING); displayableStages.add(pipeline.getStages().get(finishedStages)); }
@Test public void testShowPipelineExecutionError() { trace = mockPipelineExecutionTrace(EXECUTION_ID, mockPipeline(PIPELINE_NAME, STAGE_NUMBER), mock(PipelineStatus.class), mock(PipelineStatus.class)); trace.setPipelineStatus(PipelineStatus.ERROR); trace.setPipelineError(new PipelineError(PIPELINE_ERROR, PIPELINE_ERROR_DETAIL)); item = new RuntimeListItem(RUNTIME_NAME, trace); presenter.setup(item); presenter.showPipelineError(); verify(popupHelper, times(1)).showErrorPopup(PIPELINE_ERROR, PIPELINE_ERROR_DETAIL); }
public void onPipelineStatusChange(@Observes final PipelineStatusChangeEvent event) { if (isFromCurrentPipeline(event.getPipelineExecutionTraceKey())) { processPipelineStatus(event.getStatus()); if (PipelineStatus.FINISHED.equals(event.getStatus()) && !PipelineStatus.FINISHED.equals(item.getPipelineTrace().getPipelineStatus())) { refresh(event.getPipelineExecutionTraceKey()); } } }
private void preparePipelineActionsSetupTest(final PipelineStatus status) { preparePipelineExecutionTraceSetup(); trace.setPipelineStatus(status); RuntimeListItem item = new RuntimeListItem(RUNTIME_NAME, trace); presenter.setup(item); }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } RuntimeListItem that = (RuntimeListItem) o; if (itemLabel != null ? !itemLabel.equals(that.itemLabel) : that.itemLabel != null) { return false; } if (runtime != null ? !runtime.equals(that.runtime) : that.runtime != null) { return false; } return pipelineTrace != null ? pipelineTrace.equals(that.pipelineTrace) : that.pipelineTrace == null; }
private void assertPipelineTrace(PipelineExecutionTrace trace) { assertEquals(PIPELINE_ID, trace.getPipeline().getKey().getId()); assertEquals(PIPELINE_EXECUTION_ID, trace.getKey().getId()); assertEquals(PipelineStatus.RUNNING, trace.getPipelineStatus()); assertEquals(PIPELINE_ERROR, trace.getPipelineError().getError()); assertEquals(PIPELINE_ERROR_DETAIL, trace.getPipelineError().getErrorDetail()); assertEquals(stageItemList.getItems().size(), trace.getPipeline().getStages().size()); for (int i = 0; i < STAGE_ITEMS_COUNT; i++) { PipelineStageItem stageItem = stageItemList.getItems().get(i); Stage stage = trace.getPipeline().getStages().get(i); assertEquals(stageItem.getName(), stage.getName()); assertEquals(stageItem.getStatus(), trace.getStageStatus(stage.getName()).name()); assertEquals(stageItem.getStageError(), trace.getStageError(stage.getName()).getError()); assertEquals(stageItem.getStageErrorDetail(), trace.getStageError(stage.getName()).getErrorDetail()); } }
/** * an item with a pipeline execution trace was initially set and a new stage status not yet drawn has changed. */ @Test public void testOnStageStatusChangeNewStageChanged() { preparePipelineExecutionTraceSetup(); RuntimeListItem item = new RuntimeListItem(RUNTIME_NAME, trace); //setup the presenter. presenter.setup(item); int initialStagePresentersSize = stagePresenters.size(); //emulate the next stage consecutive stage finishing. Stage stage = item.getPipelineTrace().getPipeline().getStages().get(displayableStages.size()); presenter.onStageStatusChange(new StageStatusChangeEvent(trace.getKey(), stage.getName(), PipelineStatus.RUNNING)); //an additional stage was added. verify(stagePresenterInstance, times(initialStagePresentersSize + 1)).get(); //the newly stage is set to EXECUTING in the UI StagePresenter stagePresenter = stagePresenters.get(stagePresenters.size() - 1); verify(stagePresenter, times(1)).setup(stage); verify(stagePresenter, times(1)).setState(State.EXECUTING); }
stagePresenter.setState(buildStageState(event.getStatus())); } else { Stage stage = new Stage(item.getPipelineTrace().getPipeline().getKey(), event.getStage()); PipelineStatus stageStatus = event.getStatus(); stagePresenter); trace.setStageStatus(event.getStage(), event.getStatus());
private void setupPipeline(final PipelineExecutionTrace trace) { clearPipeline(); boolean showStep = true; Pipeline pipeline = trace.getPipeline(); for (int i = 0; showStep && i < pipeline.getStages().size(); i++) { Stage stage = pipeline.getStages().get(i); PipelineStatus stageStatus = trace.getStageStatus(stage.getName()); showStep = showStage(stageStatus); if (showStep) { if (i > 0) { TransitionPresenter transitionPresenter = newTransitionPresenter(); currentTransitions.add(transitionPresenter); pipelinePresenter.addStage(transitionPresenter.getView()); } final StagePresenter stagePresenter = newStagePresenter(); stagePresenter.setup(stage); stagePresenter.setState(buildStageState(stageStatus)); pipelinePresenter.addStage(stagePresenter.getView()); currentStages.add(stage); stagePresenters.put(stage, stagePresenter); } } }
private void setupRuntime(RuntimeListItem item) { String itemLabel = item.getItemLabel(); String pipelineName = SYSTEM_PIPELINE_NAME; String createdDate = item.getRuntime().getCreatedDate(); String endpoint = ""; Runtime runtime = item.getRuntime(); PipelineExecutionTrace trace = runtime.getPipelineTrace(); if (trace != null) { pipelineName = trace.getPipeline().getKey().getId(); setupPipeline(trace); } view.setup(itemLabel, createdDate, pipelineName); if (runtime.getEndpoint() != null) { endpoint = runtime.getEndpoint(); } view.setEndpoint(endpoint); processRuntimeStatus(runtime); }
protected void preparePipelineExecutionTraceSetup() { Pipeline pipeline = mockPipeline(PIPELINE_NAME, STAGE_NUMBER); trace = mockPipelineExecutionTrace(EXECUTION_ID, pipeline, PipelineStatus.RUNNING, PipelineStatus.SCHEDULED); //set an arbitrary number of consecutive stages as finished and the last as running. displayableStages = new ArrayList<>(); int finishedStages = 5; for (int i = 0; i < finishedStages; i++) { trace.setStageStatus(pipeline.getStages().get(i).getName(), PipelineStatus.FINISHED); displayableStages.add(pipeline.getStages().get(i)); } trace.setStageStatus(pipeline.getStages().get(finishedStages).getName(), PipelineStatus.RUNNING); displayableStages.add(pipeline.getStages().get(finishedStages)); }