From 3f4d14e48d1588fad67b6a33b9ac37ded9389459 Mon Sep 17 00:00:00 2001 From: chris meyers Date: Mon, 12 Nov 2018 15:37:26 -0500 Subject: [PATCH] crawl entire graph when marking DNR * From the root, the code was only going down the did run path to find nodes to mark DNR. This is incorrect, Now, we traverse the entire graph each time to find nodes to mark DNR. --- awx/main/scheduler/dag_workflow.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/awx/main/scheduler/dag_workflow.py b/awx/main/scheduler/dag_workflow.py index 5e8db1a497..b1d0b72482 100644 --- a/awx/main/scheduler/dag_workflow.py +++ b/awx/main/scheduler/dag_workflow.py @@ -218,14 +218,8 @@ class WorkflowDAG(SimpleDAG): obj.do_not_run = True nodes_marked_do_not_run.append(n) - if obj.do_not_run is True: - nodes.extend(self.get_dependencies(obj, 'success_nodes') + - self.get_dependencies(obj, 'failure_nodes') + - self.get_dependencies(obj, 'always_nodes')) - elif obj.job: - if obj.job.status in ['failed', 'error']: - nodes.extend(self.get_dependencies(obj, 'success_nodes')) - elif obj.job.status == 'successful': - nodes.extend(self.get_dependencies(obj, 'failure_nodes')) + nodes.extend(self.get_dependencies(obj, 'success_nodes') + + self.get_dependencies(obj, 'failure_nodes') + + self.get_dependencies(obj, 'always_nodes')) return [n['node_object'] for n in nodes_marked_do_not_run]