Enforce wfj to ignore errored jobs.

This commit is contained in:
Aaron Tan
2016-10-31 14:44:15 -04:00
parent aa119e0102
commit 0a634d7baf

View File

@@ -33,14 +33,14 @@ class WorkflowDAG(SimpleDAG):
# Job is about to run or is running. Hold our horses and wait for # Job is about to run or is running. Hold our horses and wait for
# the job to finish. We can't proceed down the graph path until we # the job to finish. We can't proceed down the graph path until we
# have the job result. # have the job result.
elif job.status not in ['failed', 'error', 'successful']: elif job.status not in ['failed', 'successful']:
continue continue
elif job.status in ['failed', 'error']: elif job.status == 'failed':
children_failed = self.get_dependencies(obj, 'failure_nodes') children_failed = self.get_dependencies(obj, 'failure_nodes')
children_always = self.get_dependencies(obj, 'always_nodes') children_always = self.get_dependencies(obj, 'always_nodes')
children_all = children_failed + children_always children_all = children_failed + children_always
nodes.extend(children_all) nodes.extend(children_all)
elif job.status in ['successful']: elif job.status == 'successful':
children_success = self.get_dependencies(obj, 'success_nodes') children_success = self.get_dependencies(obj, 'success_nodes')
children_always = self.get_dependencies(obj, 'always_nodes') children_always = self.get_dependencies(obj, 'always_nodes')
children_all = children_success + children_always children_all = children_success + children_always
@@ -60,16 +60,16 @@ class WorkflowDAG(SimpleDAG):
# Job is about to run or is running. Hold our horses and wait for # Job is about to run or is running. Hold our horses and wait for
# the job to finish. We can't proceed down the graph path until we # the job to finish. We can't proceed down the graph path until we
# have the job result. # have the job result.
elif job.status == 'canceled': elif job.status in ['canceled', 'error']:
continue continue
elif job.status not in ['failed', 'error', 'successful']: elif job.status not in ['failed', 'successful']:
return False return False
elif job.status in ['failed', 'error']: elif job.status == 'failed':
children_failed = self.get_dependencies(obj, 'failure_nodes') children_failed = self.get_dependencies(obj, 'failure_nodes')
children_always = self.get_dependencies(obj, 'always_nodes') children_always = self.get_dependencies(obj, 'always_nodes')
children_all = children_failed + children_always children_all = children_failed + children_always
nodes.extend(children_all) nodes.extend(children_all)
elif job.status in ['successful']: elif job.status == 'successful':
children_success = self.get_dependencies(obj, 'success_nodes') children_success = self.get_dependencies(obj, 'success_nodes')
children_always = self.get_dependencies(obj, 'always_nodes') children_always = self.get_dependencies(obj, 'always_nodes')
children_all = children_success + children_always children_all = children_success + children_always