diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index 514b37db36..b141843b96 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -4,7 +4,6 @@ # Python import datetime import hmac -import json import logging import time from urlparse import urljoin @@ -589,23 +588,6 @@ class Job(UnifiedJob, JobOptions, SurveyJobMixin, JobNotificationMixin): hosts=all_hosts)) return data - def handle_extra_data(self, extra_data): - extra_vars = {} - if isinstance(extra_data, dict): - extra_vars = extra_data - elif extra_data is None: - return - else: - if extra_data == "": - return - try: - extra_vars = json.loads(extra_data) - except Exception as e: - logger.warn("Exception deserializing extra vars: " + str(e)) - evars = self.extra_vars_dict - evars.update(extra_vars) - self.update_fields(extra_vars=json.dumps(evars)) - def _resources_sufficient_for_launch(self): if self.job_type == PERM_INVENTORY_SCAN: return self.inventory_id is not None @@ -1356,23 +1338,6 @@ class SystemJob(UnifiedJob, SystemJobOptions, JobNotificationMixin): def get_ui_url(self): return urljoin(settings.TOWER_URL_BASE, "/#/management_jobs/{}".format(self.pk)) - def handle_extra_data(self, extra_data): - extra_vars = {} - if isinstance(extra_data, dict): - extra_vars = extra_data - elif extra_data is None: - return - else: - if extra_data == "": - return - try: - extra_vars = json.loads(extra_data) - except Exception as e: - logger.warn("Exception deserializing extra vars: " + str(e)) - evars = self.extra_vars_dict - evars.update(extra_vars) - self.update_fields(extra_vars=json.dumps(evars)) - @property def task_impact(self): return 150 diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index 773f786cbd..62055dc233 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -818,7 +818,22 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique return [] def handle_extra_data(self, extra_data): - return + if hasattr(self, 'extra_vars'): + extra_vars = {} + if isinstance(extra_data, dict): + extra_vars = extra_data + elif extra_data is None: + return + else: + if extra_data == "": + return + try: + extra_vars = json.loads(extra_data) + except Exception as e: + logger.warn("Exception deserializing extra vars: " + str(e)) + evars = self.extra_vars_dict + evars.update(extra_vars) + self.update_fields(extra_vars=json.dumps(evars)) @property def can_start(self):