From d03101dde899c8ef1b58880bea054b384b9c6199 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]