diff --git a/lib/ansible/modules/files/assemble.py b/lib/ansible/modules/files/assemble.py index 9d51834aa11..bf3001367eb 100644 --- a/lib/ansible/modules/files/assemble.py +++ b/lib/ansible/modules/files/assemble.py @@ -233,7 +233,7 @@ def main(): if backup and dest_hash is not None: result['backup_file'] = module.backup_local(dest) - module.atomic_move(path, dest) + module.atomic_move(path, dest, unsafe_writes=module.params['unsafe_writes']) changed = True cleanup(path, result) diff --git a/lib/ansible/modules/files/copy.py b/lib/ansible/modules/files/copy.py index 74f7b28ed64..3b2c79be799 100644 --- a/lib/ansible/modules/files/copy.py +++ b/lib/ansible/modules/files/copy.py @@ -321,12 +321,11 @@ def main(): (rc,out,err) = module.run_command(validate % src) if rc != 0: module.fail_json(msg="failed to validate", exit_status=rc, stdout=out, stderr=err) + mysrc = src if remote_src: - _, tmpdest = tempfile.mkstemp(dir=os.path.dirname(dest)) - shutil.copy2(src, tmpdest) - module.atomic_move(tmpdest, dest) - else: - module.atomic_move(src, dest) + _, mysrc = tempfile.mkstemp(dir=os.path.dirname(dest)) + shutil.copy2(src, mysrc) + module.atomic_move(mysrc, dest, unsafe_writes=module.params['unsafe_writes']) except IOError: module.fail_json(msg="failed to copy: %s to %s" % (src, dest), traceback=traceback.format_exc()) changed = True diff --git a/lib/ansible/modules/files/lineinfile.py b/lib/ansible/modules/files/lineinfile.py index 076108bbbcd..e3d870c3855 100644 --- a/lib/ansible/modules/files/lineinfile.py +++ b/lib/ansible/modules/files/lineinfile.py @@ -164,7 +164,7 @@ def write_changes(module,lines,dest): module.fail_json(msg='failed to validate: ' 'rc:%s error:%s' % (rc,err)) if valid: - module.atomic_move(tmpfile, os.path.realpath(dest)) + module.atomic_move(tmpfile, os.path.realpath(dest), unsafe_writes=module.params['unsafe_writes']) def check_file_attrs(module, changed, message, diff): diff --git a/lib/ansible/modules/files/replace.py b/lib/ansible/modules/files/replace.py index 634e492953b..651503fd7b1 100644 --- a/lib/ansible/modules/files/replace.py +++ b/lib/ansible/modules/files/replace.py @@ -101,7 +101,7 @@ def write_changes(module,contents,dest): module.fail_json(msg='failed to validate: ' 'rc:%s error:%s' % (rc,err)) if valid: - module.atomic_move(tmpfile, dest) + module.atomic_move(tmpfile, dest, unsafe_writes=module.params['unsafe_writes']) def check_file_attrs(module, changed, message):