private void prepareExecution() { //mock the execution inputs pipeline = mock(Pipeline.class); stages = mockStages(PIPELINE_STAGES_SIZE); when(pipeline.getStages()).thenReturn(stages); when(pipeline.getName()).thenReturn(PIPELINE_ID); when(pipelineRegistry.getPipelineByName(PIPELINE_ID)).thenReturn(pipeline); taskDef = mock(PipelineExecutorTaskDef.class); input = mock(Input.class); when(taskDef.getInput()).thenReturn(input); when(taskDef.getPipeline()).thenReturn(PIPELINE_ID); }
public PipelineExecutorTaskImpl(final PipelineExecutorTaskDef taskDef, final String executionId) { this.taskDef = taskDef; setId(executionId); taskDef.getStages().forEach(stage -> setStageStatus(stage, Status.SCHEDULED)); }
protected void assertHasSameInfo(PipelineExecutorTaskDef expectedTaskDef, PipelineExecutorTaskDef taskDef) { assertEquals(expectedTaskDef.getInput(), taskDef.getInput()); assertEquals(expectedTaskDef.getPipeline(), taskDef.getPipeline()); assertEquals(expectedTaskDef.getProviderId(), taskDef.getProviderId()); assertEquals(expectedTaskDef.getProviderType(), taskDef.getProviderType()); } }
if (pipelineExecutorTrace.getTask().getTaskDef().getProviderId() != null) { item.setProviderId(pipelineExecutorTrace.getTask().getTaskDef().getProviderId().getId()); item.setProviderTypeName(pipelineExecutorTrace.getTask().getTaskDef().getProviderId().getProviderType().getProviderTypeName()); item.setProviderVersion(pipelineExecutorTrace.getTask().getTaskDef().getProviderId().getProviderType().getVersion()); List<PipelineStageItem> stageItems = pipelineExecutorTrace.getTask().getTaskDef().getStages().stream() .map(stage -> { String stageError = null; item.setRuntimeName(pipelineExecutorTrace.getTask().getTaskDef().getInput().get(RuntimeConfig.RUNTIME_NAME));
private void setId(final String executionId) { this.executionId = executionId; getTaskDef().getInput().put(PIPELINE_EXECUTION_ID, executionId); }
@JsonIgnore @Override public String getPipelineId() { return getTask().getTaskDef().getPipeline(); }
@Override public boolean test(PipelineExecutorTrace pipelineExecutorTrace) { if (pipelineExecutionId != null) { return pipelineExecutionId.equals(pipelineExecutorTrace.getTaskId()); } if (runtimeId != null) { return (pipelineExecutorTrace.getTask().getOutput() instanceof RuntimeId) && runtimeId.equals(((RuntimeId) pipelineExecutorTrace.getTask().getOutput()).getId()); } if (runtimeName != null) { return (pipelineExecutorTrace.getTask().getOutput() instanceof RuntimeId) && runtimeName.equals(((RuntimeId) pipelineExecutorTrace.getTask().getOutput()).getName()); } if (providerId != null) { if (pipelineExecutorTrace.getTask().getTaskDef().getProviderId() == null) { return false; } else if (!providerId.equals(pipelineExecutorTrace.getTask().getTaskDef().getProviderId().getId())) { return false; } } if (pipelineId != null) { if (!pipelineId.equals(pipelineExecutorTrace.getPipelineId())) { return false; } } return true; } }
private void setId(final String executionId) { this.executionId = executionId; getTaskDef().getInput().put(PIPELINE_EXECUTION_ID, executionId); }
@JsonIgnore @Override public String getPipelineId() { return getTask().getTaskDef().getPipeline(); }
private void prepareExecution() { //mock the execution inputs pipeline = mock(Pipeline.class); stages = mockStages(PIPELINE_STAGES_SIZE); when(pipeline.getStages()).thenReturn(stages); when(pipeline.getName()).thenReturn(PIPELINE_ID); when(pipelineRegistry.getPipelineByName(PIPELINE_ID)).thenReturn(pipeline); taskDef = mock(PipelineExecutorTaskDef.class); input = mock(Input.class); when(taskDef.getInput()).thenReturn(input); when(taskDef.getPipeline()).thenReturn(PIPELINE_ID); }
protected void assertHasSameInfo(PipelineExecutorTaskDef expectedTaskDef, PipelineExecutorTaskDef taskDef) { assertEquals(expectedTaskDef.getInput(), taskDef.getInput()); assertEquals(expectedTaskDef.getPipeline(), taskDef.getPipeline()); assertEquals(expectedTaskDef.getProviderId(), taskDef.getProviderId()); assertEquals(expectedTaskDef.getProviderType(), taskDef.getProviderType()); } }
public PipelineExecutorTaskImpl(final PipelineExecutorTaskDef taskDef, final String executionId) { this.taskDef = taskDef; setId(executionId); taskDef.getStages().forEach(stage -> setStageStatus(stage, Status.SCHEDULED)); }
@Test public void testExecuteSync() { when(taskManagerHelper.generateTaskId()).thenReturn(TASK_ID); taskManager.init(); //prepare the input parameters. prepareExecution(); String result = taskManager.execute(taskDef, PipelineExecutorTaskManager.ExecutionMode.SYNCHRONOUS); assertEquals(TASK_ID, result); //verify the task to execute was properly initialized. verify(taskManagerHelper, times(1)).createTask(taskDef); //verify the pipeline was properly executed. verify(pipelineExecutor, times(1)).execute(eq(taskDef.getInput()), eq(pipeline), any(Consumer.class), eq(taskManager.localListener)); //verify the pipeline executor registry was properly updated. verify(pipelineExecutorRegistry, times(1)).register(pipelineExecutorTraceCaptor.capture()); assertEquals(PIPELINE_ID, pipelineExecutorTraceCaptor.getValue().getPipelineId()); assertEquals(TASK_ID, pipelineExecutorTraceCaptor.getValue().getTaskId()); }
Pipeline pipeline = mock(Pipeline.class); when(pipeline.getStages()).thenReturn(mock(List.class)); when(taskDef.getPipeline()).thenReturn(PIPELINE_ID);
@Before public void setUp() { super.setUp(); error = mock(Throwable.class); when(error.getMessage()).thenReturn(ERROR_MESSAGE); pipelineExecutorExceptionCaptor = ArgumentCaptor.forClass(PipelineExecutorException.class); pipeline = mock(Pipeline.class); stages = mockStages(PIPELINE_STAGES_SIZE); when(pipeline.getStages()).thenReturn(stages); when(pipeline.getName()).thenReturn(PIPELINE_ID); when(pipelineRegistry.getPipelineByName(PIPELINE_ID)).thenReturn(pipeline); //pick an arbitrary stage for events testing. stage = stages.get(0); taskDef = mock(PipelineExecutorTaskDef.class); input = mock(Input.class); when(taskDef.getInput()).thenReturn(input); when(taskDef.getPipeline()).thenReturn(PIPELINE_ID); task = spy(taskManagerHelper.createTask(taskDef, TASK_ID)); taskEntry = mock(PipelineExecutorTaskManagerImpl.TaskEntry.class); when(taskEntry.getTask()).thenReturn(task); //emulate there's a running task. taskManager.currentTasks.put(TASK_ID, taskEntry); taskManager.init(); }
public void setTaskInStoppedStatus(final PipelineExecutorTaskImpl task) { task.setPipelineStatus(PipelineExecutorTask.Status.STOPPED); task.getTaskDef().getStages() .stream() .filter(stage -> PipelineExecutorTask.Status.RUNNING.equals(task.getStageStatus(stage)) || PipelineExecutorTask.Status.SCHEDULED.equals(task.getStageStatus(stage))) .forEach(stage -> task.setStageStatus(stage, PipelineExecutorTask.Status.STOPPED)); task.clearErrors(); task.setOutput(null); } }
@Test public void testExecuteSync() { when(taskManagerHelper.generateTaskId()).thenReturn(TASK_ID); taskManager.init(); //prepare the input parameters. prepareExecution(); String result = taskManager.execute(taskDef, PipelineExecutorTaskManager.ExecutionMode.SYNCHRONOUS); assertEquals(TASK_ID, result); //verify the task to execute was properly initialized. verify(taskManagerHelper, times(1)).createTask(taskDef); //verify the pipeline was properly executed. verify(pipelineExecutor, times(1)).execute(eq(taskDef.getInput()), eq(pipeline), any(Consumer.class), eq(taskManager.localListener)); //verify the pipeline executor registry was properly updated. verify(pipelineExecutorRegistry, times(1)).register(pipelineExecutorTraceCaptor.capture()); assertEquals(PIPELINE_ID, pipelineExecutorTraceCaptor.getValue().getPipelineId()); assertEquals(TASK_ID, pipelineExecutorTraceCaptor.getValue().getTaskId()); }
Pipeline pipeline = mock(Pipeline.class); when(pipeline.getStages()).thenReturn(mock(List.class)); when(taskDef.getPipeline()).thenReturn(PIPELINE_ID);