diff --git a/authorized_key b/authorized_key index 5ba06fc2b2f..0664727bbdb 100755 --- a/authorized_key +++ b/authorized_key @@ -125,13 +125,7 @@ def writekeys(module, filename, keys): except IOError, e: module.fail_json(msg="Failed to write to file %s: %s" % (tmp_path, str(e))) f.close() - try: - shutil.copyfile(tmp_path, filename) - os.unlink(tmp_path) - except IOError, e: - module.fail_json(msg="Failed to copy temp file to %s: %s" % (filename, str(e))) - except OSError, e: - module.fail_json(msg="Failed to remove temp file: %s" % str(e)) + module.atomic_replace(tmp_path, filename) def enforce_state(module, params): """ diff --git a/copy b/copy index 7f7f501a3a3..3ba1de781ec 100755 --- a/copy +++ b/copy @@ -114,7 +114,7 @@ def main(): # might be an issue with exceeding path length dest_tmp = "%s.%s.%s.tmp" % (dest,os.getpid(),time.time()) shutil.copyfile(src, dest_tmp) - shutil.move(dest_tmp, dest) + module.atomic_replace(dest_tmp, dest) except shutil.Error: module.fail_json(msg="failed to copy: %s and %s are the same" % (src, dest)) except IOError: