diff --git a/awx/main/models/base.py b/awx/main/models/base.py index 32f1bcd5d9..3c703b76c4 100644 --- a/awx/main/models/base.py +++ b/awx/main/models/base.py @@ -400,7 +400,14 @@ class CommonTask(PrimordialModel): if not self.can_start: return False needed = self._get_passwords_needed_to_start() - opts = dict([(field, kwargs.get(field, '')) for field in needed]) + try: + stored_args = json.loads(decrypt_field(self, 'start_args')) + except Exception, e: + stored_args = None + if stored_args is None or stored_args == '': + opts = dict([(field, kwargs.get(field, '')) for field in needed]) + else: + opts = dict([(field, stored_args.get(field, '')) for field in needed]) if not all(opts.values()): return False task_class().apply_async((self.pk,), opts, link_error=error_callback) diff --git a/awx/main/tests/commands.py b/awx/main/tests/commands.py index 936f7f8be4..7a7ea85fed 100644 --- a/awx/main/tests/commands.py +++ b/awx/main/tests/commands.py @@ -403,7 +403,6 @@ class CleanupJobsTest(BaseCommandMixin, BaseLiveServerTest): self.assertEqual(job.status, 'new') self.assertFalse(job.passwords_needed_to_start) self.assertTrue(job.signal_start()) - #self.assertEqual(job.status, 'waiting') job = Job.objects.get(pk=job.pk) self.assertEqual(job.status, 'successful') # With days=1, no jobs will be deleted.