diff --git a/awx/main/scheduler/__init__.py b/awx/main/scheduler/__init__.py index 6237c6eeb7..24b4a07edb 100644 --- a/awx/main/scheduler/__init__.py +++ b/awx/main/scheduler/__init__.py @@ -133,7 +133,7 @@ class TaskManager(): if workflow_job.cancel_flag: workflow_job.status = 'canceled' workflow_job.save() - dag.bfs_nodes_to_cancel() + dag.cancel_node_jobs() connection.on_commit(lambda: workflow_job.websocket_emit_status(workflow_job.status)) elif dag.is_workflow_done(): if workflow_job._has_failed(): diff --git a/awx/main/scheduler/dag_workflow.py b/awx/main/scheduler/dag_workflow.py index 742c337dc0..1995434f48 100644 --- a/awx/main/scheduler/dag_workflow.py +++ b/awx/main/scheduler/dag_workflow.py @@ -48,11 +48,8 @@ class WorkflowDAG(SimpleDAG): nodes.extend(children_all) return [n['node_object'] for n in nodes_found] - def bfs_nodes_to_cancel(self): - root_nodes = self.get_root_nodes() - nodes = root_nodes - - for index, n in enumerate(nodes): + def cancel_node_jobs(self): + for n in self.nodes: obj = n['node_object'] job = obj.job @@ -60,16 +57,6 @@ class WorkflowDAG(SimpleDAG): continue elif job.can_cancel: job.cancel() - elif job.status == 'failed': - children_failed = self.get_dependencies(obj, 'failure_nodes') - children_always = self.get_dependencies(obj, 'always_nodes') - children_all = children_failed + children_always - nodes.extend(children_all) - elif job.status == 'successful': - children_success = self.get_dependencies(obj, 'success_nodes') - children_always = self.get_dependencies(obj, 'always_nodes') - children_all = children_success + children_always - nodes.extend(children_all) def is_workflow_done(self): root_nodes = self.get_root_nodes()