ret.put("flowParam", options.getFlowParameters()); final FailureAction action = options.getFailureAction(); String failureAction = null; switch (action) {
private void assertTwoFlowSame(final ExecutableFlow flow1, final ExecutableFlow flow2, final boolean compareFlowData) { assertThat(flow1.getExecutionId()).isEqualTo(flow2.getExecutionId()); assertThat(flow1.getStatus()).isEqualTo(flow2.getStatus()); assertThat(flow1.getEndTime()).isEqualTo(flow2.getEndTime()); assertThat(flow1.getStartTime()).isEqualTo(flow2.getStartTime()); assertThat(flow1.getSubmitTime()).isEqualTo(flow2.getSubmitTime()); assertThat(flow1.getFlowId()).isEqualTo(flow2.getFlowId()); assertThat(flow1.getProjectId()).isEqualTo(flow2.getProjectId()); assertThat(flow1.getVersion()).isEqualTo(flow2.getVersion()); assertThat(flow1.getSubmitUser()).isEqualTo(flow2.getSubmitUser()); if (compareFlowData) { assertThat(flow1.getExecutionOptions().getFailureAction()) .isEqualTo(flow2.getExecutionOptions().getFailureAction()); assertThat(new HashSet<>(flow1.getEndNodes())).isEqualTo(new HashSet<>(flow2.getEndNodes())); } }
+ flow.getProjectName() + "' has encountered a failure on " + azkabanName + "</h2>"); if (option.getFailureAction() == FailureAction.CANCEL_ALL) { message .println("This flow is set to cancel all currently running jobs."); } else if (option.getFailureAction() == FailureAction.FINISH_ALL_POSSIBLE) { message .println("This flow is set to complete all jobs that aren't blocked by the failure.");
private static void testEquals(final ExecutionOptions optionsA, final ExecutionOptions optionsB) { Assert.assertEquals(optionsA.getConcurrentOption(), optionsB.getConcurrentOption()); Assert.assertEquals(optionsA.getNotifyOnFirstFailure(), optionsB.getNotifyOnFirstFailure()); Assert.assertEquals(optionsA.getNotifyOnLastFailure(), optionsB.getNotifyOnLastFailure()); Assert.assertEquals(optionsA.getFailureAction(), optionsB.getFailureAction()); Assert.assertEquals(optionsA.getPipelineExecutionId(), optionsB.getPipelineExecutionId()); Assert.assertEquals(optionsA.getPipelineLevel(), optionsB.getPipelineLevel()); Assert.assertEquals(optionsA.isFailureEmailsOverridden(), optionsB.isFailureEmailsOverridden()); Assert.assertEquals(optionsA.isSuccessEmailsOverridden(), optionsB.isSuccessEmailsOverridden()); testDisabledEquals(optionsA.getDisabledJobs(), optionsB.getDisabledJobs()); testEquals(optionsA.getSuccessEmails(), optionsB.getSuccessEmails()); testEquals(optionsA.getFailureEmails(), optionsB.getFailureEmails()); testEquals(optionsA.getFlowParameters(), optionsB.getFlowParameters()); }
ret.put("flowParam", options.getFlowParameters()); FailureAction action = options.getFailureAction(); String failureAction = null; switch (action) {
/** * Constructor. * If executorService is null, then it will create it's own for thread pools. * * @param flow * @param executorLoader * @param projectLoader * @param jobtypeManager * @param executorService * @throws ExecutorManagerException */ public FlowRunner(ExecutableFlow flow, ExecutorLoader executorLoader, ProjectLoader projectLoader, JobTypeManager jobtypeManager, ExecutorService executorService) throws ExecutorManagerException { this.execId = flow.getExecutionId(); this.flow = flow; this.executorLoader = executorLoader; this.projectLoader = projectLoader; this.execDir = new File(flow.getExecutionPath()); this.jobtypeManager = jobtypeManager; ExecutionOptions options = flow.getExecutionOptions(); this.pipelineLevel = options.getPipelineLevel(); this.pipelineExecId = options.getPipelineExecutionId(); this.failureAction = options.getFailureAction(); this.proxyUsers = flow.getProxyUsers(); this.executorService = executorService; this.finishedNodes = new SwapQueue<ExecutableNode>(); }
if (option.getFailureAction() == FailureAction.CANCEL_ALL) { message.println("This flow is set to cancel all currently running jobs."); else if (option.getFailureAction() == FailureAction.FINISH_ALL_POSSIBLE) { message.println("This flow is set to complete all jobs that aren't blocked by the failure.");
+ flow.getProjectName() + "' has encountered a failure on " + azkabanName + "</h2>"); if (option.getFailureAction() == FailureAction.CANCEL_ALL) { message .println("This flow is set to cancel all currently running jobs."); } else if (option.getFailureAction() == FailureAction.FINISH_ALL_POSSIBLE) { message .println("This flow is set to complete all jobs that aren't blocked by the failure.");