mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 18:09:57 -03:30
Simplify internal node job cancel mechanism.
This commit is contained in:
parent
3c0d60075c
commit
9e244b640b
@ -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():
|
||||
|
||||
@ -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()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user