diff --git a/awx/main/management/commands/run_task_system.py b/awx/main/management/commands/run_task_system.py index fc69ef0323..c9211e1f4f 100644 --- a/awx/main/management/commands/run_task_system.py +++ b/awx/main/management/commands/run_task_system.py @@ -237,6 +237,7 @@ def process_graph(graph, task_capacity): if not start_status: node_obj.status = 'failed' node_obj.result_traceback += "Task failed pre-start check" + node_obj.save() # TODO: Run error handler continue remaining_volume -= impact diff --git a/awx/main/models/base.py b/awx/main/models/base.py index 3441a1ed9b..d4a700c388 100644 --- a/awx/main/models/base.py +++ b/awx/main/models/base.py @@ -370,7 +370,7 @@ class CommonTask(PrimordialModel): @property def can_start(self): - return bool(self.status == 'new') + return bool(self.status in ('new', 'waiting')) @property def task_impact(self): @@ -397,7 +397,7 @@ class CommonTask(PrimordialModel): def start(self, error_callback, **kwargs): task_class = self._get_task_class() - if not self.can_start: + if not self.status == 'waiting': return False needed = self._get_passwords_needed_to_start() try: