From 8a2bda0e067c2f01bb3cf142226f5baa191dac44 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Mon, 5 Feb 2018 11:29:58 -0800 Subject: [PATCH] When tempdir fails to be created, we have nothng to remove This commit should get us a better error traceback when things do go wrong. References #35613 --- lib/ansible/plugins/action/template.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/ansible/plugins/action/template.py b/lib/ansible/plugins/action/template.py index 9b2044215f5..c25940a0ba4 100644 --- a/lib/ansible/plugins/action/template.py +++ b/lib/ansible/plugins/action/template.py @@ -134,9 +134,11 @@ class ActionModule(ActionBase): new_task.args.pop('variable_start_string', None) new_task.args.pop('variable_end_string', None) new_task.args.pop('trim_blocks', None) + + local_tempdir = tempfile.mkdtemp(dir=C.DEFAULT_LOCAL_TMP) + try: - tempdir = tempfile.mkdtemp(dir=C.DEFAULT_LOCAL_TMP) - result_file = os.path.join(tempdir, os.path.basename(source)) + result_file = os.path.join(local_tempdir, os.path.basename(source)) with open(result_file, 'wb') as f: f.write(to_bytes(resultant, errors='surrogate_or_strict')) @@ -156,7 +158,8 @@ class ActionModule(ActionBase): shared_loader_obj=self._shared_loader_obj) result.update(copy_action.run(task_vars=task_vars, tmp=tmp)) finally: - shutil.rmtree(tempdir) + shutil.rmtree(local_tempdir) + except AnsibleAction as e: result.update(e.result) finally: