From b790b50a1af81a2d4095f08ce004e0fbdcb7f430 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Fri, 16 Nov 2018 16:45:09 -0500 Subject: [PATCH] Fail job run if project is failed provide message in traceback and explanation fields add log messages for dependency spawns --- awx/main/scheduler/task_manager.py | 10 ++++++++++ awx/main/tasks.py | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/awx/main/scheduler/task_manager.py b/awx/main/scheduler/task_manager.py index dd6e620747..2854b3ab34 100644 --- a/awx/main/scheduler/task_manager.py +++ b/awx/main/scheduler/task_manager.py @@ -285,6 +285,11 @@ class TaskManager(): project_task.created = task.created - timedelta(seconds=1) project_task.status = 'pending' project_task.save() + logger.info( + 'Spawned {} as dependency of {}'.format( + project_task.log_format, task.log_format + ) + ) return project_task def create_inventory_update(self, task, inventory_source_task): @@ -294,6 +299,11 @@ class TaskManager(): inventory_task.created = task.created - timedelta(seconds=2) inventory_task.status = 'pending' inventory_task.save() + logger.info( + 'Spawned {} as dependency of {}'.format( + inventory_task.log_format, task.log_format + ) + ) # inventory_sources = self.get_inventory_source_tasks([task]) # self.process_inventory_sources(inventory_sources) return inventory_task diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 73b140c55f..953e267cf7 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -1381,6 +1381,12 @@ class RunJob(BaseTask): if job.is_isolated() is True: pu_ig = pu_ig.controller pu_en = settings.CLUSTER_HOST_ID + if job.project.status in ('error', 'failed'): + msg = _( + 'The project revision for this job template is unknown due to a failed update.' + ) + job = self.update_model(job.pk, status='failed', job_explanation=msg) + raise RuntimeError(msg) local_project_sync = job.project.create_project_update( _eager_fields=dict( launch_type="sync",