diff --git a/awx/main/tasks.py b/awx/main/tasks.py index a0963c73ce..a32c9dca5d 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -357,9 +357,9 @@ def handle_work_success(self, result, task_actual): run_job_complete.delay(instance.id) -@shared_task(bind=True, queue='tower', base=LogErrorsTask) -def handle_work_error(self, task_id, subtasks=None): - logger.debug('Executing error task id %s, subtasks: %s' % (str(self.request.id), str(subtasks))) +@shared_task(queue='tower', base=LogErrorsTask) +def handle_work_error(request, exc, traceback, task_id, subtasks=None): + logger.debug('Executing error task id %s, subtasks: %s' % (request.id, str(subtasks))) first_instance = None first_instance_type = '' if subtasks is not None: @@ -678,11 +678,12 @@ class BaseTask(LogErrorsTask): return False def build_inventory(self, instance, **kwargs): - path = os.path.join(kwargs['private_data_dir'], 'inventory') - with open(path, 'w') as f: - json_data = json.dumps(instance.inventory.get_script_data(hostvars=True)) - f.write('#! /usr/bin/env python\n# -*- coding: utf-8 -*-\nprint %r\n' % json_data) - os.chmod(path, stat.S_IRUSR | stat.S_IXUSR) + json_data = json.dumps(instance.inventory.get_script_data(hostvars=True)) + handle, path = tempfile.mkstemp(dir=kwargs.get('private_data_dir', None)) + f = os.fdopen(handle, 'w') + f.write('#! /usr/bin/env python\n# -*- coding: utf-8 -*-\nprint %r\n' % json_data) + f.close() + os.chmod(path, stat.S_IRUSR | stat.S_IXUSR | stat.S_IWUSR) return path def build_args(self, instance, **kwargs):