diff --git a/awx/api/views.py b/awx/api/views.py index 754ca9c02a..18f6d9c37a 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -1755,8 +1755,11 @@ class SystemJobTemplateLaunch(GenericAPIView): new_job = obj.create_unified_job() if 'extra_vars' in request.DATA: try: - extra_vars = json.loads(request.DATA['extra_vars']) - except Exception: + if type(request.DATA['extra_vars']) == dict: + extra_vars = request.DATA['extra_vars'] + else: + extra_vars = json.loads(request.DATA['extra_vars']) + except Exception, e: extra_vars = {} else: extra_vars = {} diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index c45f688047..31c853155f 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -994,13 +994,15 @@ class SystemJob(UnifiedJob, SystemJobOptions): def handle_extra_data(self, extra_data): if extra_data == "" or extra_data is None: return + try: + evars = json.loads(self.extra_vars) + except Exception, e: + evars = {} if type(extra_data) == str: try: - evars = json.loads(self.extra_vars) + extra_data = json.loads(extra_data) except Exception, e: - return - else: - evars = extra_data + extra_data = {} if evars is None: evars = extra_data else: