From b6653450700993392087e0dbad50b6416cf22237 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Thu, 27 Mar 2014 22:45:09 -0400 Subject: [PATCH] Support passing the schedule when signaling start so we record which schedule this came from --- awx/main/models/inventory.py | 9 ++++++--- awx/main/models/jobs.py | 5 ++++- awx/main/models/projects.py | 9 ++++++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/awx/main/models/inventory.py b/awx/main/models/inventory.py index 2b57a5e508..57ce5158c2 100644 --- a/awx/main/models/inventory.py +++ b/awx/main/models/inventory.py @@ -676,13 +676,13 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions): inventory_update_sig = inventory_update.start_signature() return (inventory_update, inventory_update_sig) - def update(self, **kwargs): + def update(self, schedule=None, **kwargs): if self.can_update: inventory_update = self.create_inventory_update() if hasattr(settings, 'CELERY_UNIT_TEST'): inventory_update.start(None, **kwargs) else: - inventory_update.signal_start(**kwargs) + inventory_update.signal_start(schedule=schedule, **kwargs) return inventory_update @@ -736,8 +736,11 @@ class InventoryUpdate(UnifiedJob, InventorySourceOptions): def task_impact(self): return 50 - def signal_start(self, **kwargs): + def signal_start(self, schedule=None, **kwargs): from awx.main.tasks import notify_task_runner + if schedule: + self.schedule=schedule + self.save() if not self.can_start: return False needed = self._get_passwords_needed_to_start() diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index 9e507d0552..ec82aa45d6 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -319,8 +319,11 @@ class Job(UnifiedJob, JobOptions): dependencies.append(source.create_inventory_update(launch_type='dependency')) return dependencies - def signal_start(self, **kwargs): + def signal_start(self, schedule=None, **kwargs): from awx.main.tasks import notify_task_runner + if schedule: + self.schedule = schedule + self.save() if hasattr(settings, 'CELERY_UNIT_TEST'): return self.start(None, **kwargs) if not self.can_start: diff --git a/awx/main/models/projects.py b/awx/main/models/projects.py index ed6fee7ec1..028f5e4c37 100644 --- a/awx/main/models/projects.py +++ b/awx/main/models/projects.py @@ -312,13 +312,13 @@ class Project(UnifiedJobTemplate, ProjectOptions): project_update_sig = project_update.start_signature() return (project_update, project_update_sig) - def update(self, **kwargs): + def update(self, schedule=None, **kwargs): if self.can_update: project_update = self.create_project_update() if hasattr(settings, 'CELERY_UNIT_TEST'): project_update.start(None, **kwargs) else: - project_update.signal_start(**kwargs) + project_update.signal_start(schedule=schedule, **kwargs) return project_update def get_absolute_url(self): @@ -359,8 +359,11 @@ class ProjectUpdate(UnifiedJob, ProjectOptions): def task_impact(self): return 20 - def signal_start(self, **kwargs): + def signal_start(self, schedule=None, **kwargs): from awx.main.tasks import notify_task_runner + if schedule: + self.schedule = schedule + self.save() if not self.can_start: return False needed = self._get_passwords_needed_to_start()