From 17665d962b49c6c74cc43c9a9ed5292b7b9dea70 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi <toshio@fedoraproject.org> Date: Mon, 15 Sep 2014 12:34:16 -0700 Subject: [PATCH] Do not keep a new file if we fail to set its attributes. --- files/file | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/files/file b/files/file index 82f4d5016d5..8bfd94dd98a 100644 --- a/files/file +++ b/files/file @@ -331,8 +331,16 @@ def main(): module.fail_json(path=path, msg='Error while touching existing target: %s' % str(e)) else: module.fail_json(msg='Cannot touch other than files and directories') - - module.set_fs_attributes_if_different(file_args, True) + try: + module.set_fs_attributes_if_different(file_args, True) + except SystemExit as e: + if e.code: + # We take this to mean that fail_json() was called from + # somewhere in basic.py + if prev_state == 'absent': + # If we just created the file we can safely remove it + os.remove(path) + raise e module.exit_json(dest=path, changed=True)