diff --git a/awx/main/models/inventory.py b/awx/main/models/inventory.py index c04ea78885..a622755cff 100644 --- a/awx/main/models/inventory.py +++ b/awx/main/models/inventory.py @@ -708,7 +708,7 @@ class InventorySource(PrimordialModel): def update(self, **kwargs): if self.can_update: inventory_update = self.inventory_updates.create() - inventory_update.signal_start() + inventory_update.signal_start(**kwargs) return inventory_update def get_absolute_url(self): @@ -764,6 +764,11 @@ class InventoryUpdate(CommonTask): return 50 def signal_start(self, **kwargs): + json_args = json.dumps(kwargs) + self.start_args = json_args + self.save() + self.start_args = encrypt_field(self, 'start_args') + self.save() signal_context = zmq.Context() signal_socket = signal_context.socket(zmq.REQ) signal_socket.connect(settings.TASK_COMMAND_PORT) diff --git a/awx/main/models/projects.py b/awx/main/models/projects.py index f5bf54c990..ee43649a5d 100644 --- a/awx/main/models/projects.py +++ b/awx/main/models/projects.py @@ -294,7 +294,7 @@ class Project(CommonModel): def update(self, **kwargs): if self.can_update: project_update = self.project_updates.create() - project_update.signal_start() + project_update.signal_start(**kwargs) return project_update def get_absolute_url(self): @@ -376,6 +376,11 @@ class ProjectUpdate(CommonTask): return 20 def signal_start(self, **kwargs): + json_args = json.dumps(kwargs) + self.start_args = json_args + self.save() + self.start_args = encrypt_field(self, 'start_args') + self.save() signal_context = zmq.Context() signal_socket = signal_context.socket(zmq.REQ) signal_socket.connect(settings.TASK_COMMAND_PORT) diff --git a/awx/main/tests/commands.py b/awx/main/tests/commands.py index d6c139c386..1acb45bf6c 100644 --- a/awx/main/tests/commands.py +++ b/awx/main/tests/commands.py @@ -402,7 +402,7 @@ class CleanupJobsTest(BaseCommandMixin, BaseLiveServerTest): job = self.create_test_job(job_template=job_template) self.assertEqual(job.status, 'new') self.assertFalse(job.passwords_needed_to_start) - self.assertTrue(job.start()) + self.assertTrue(job.signal_start()) self.assertEqual(job.status, 'waiting') job = Job.objects.get(pk=job.pk) self.assertEqual(job.status, 'successful') diff --git a/awx/main/tests/jobs.py b/awx/main/tests/jobs.py index 1ba1d85407..071e227e49 100644 --- a/awx/main/tests/jobs.py +++ b/awx/main/tests/jobs.py @@ -911,7 +911,7 @@ class JobStartCancelTest(BaseJobTestMixin, django.test.LiveServerTestCase): def test_get_job_results(self): # Start/run a job and then access its results via the API. job = self.job_ops_east_run - job.start() + job.signal_start() # Check that the job detail has been updated. url = reverse('api:job_detail', args=(job.pk,))