From 8b50ad7e8574e948828b0ce713fb12bba33f1f57 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Thu, 25 Oct 2012 21:37:37 -0400 Subject: [PATCH] Fix for atomic_replace patch if file does not yet exist --- lib/ansible/module_common.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/ansible/module_common.py b/lib/ansible/module_common.py index f0d8c826a49..72aa97099e5 100644 --- a/lib/ansible/module_common.py +++ b/lib/ansible/module_common.py @@ -596,19 +596,19 @@ class AnsibleModule(object): def atomic_replace(self, src, dest): '''atomically replace dest with src, copying attributes from dest''' - st = os.stat(dest) - os.chmod(src, st.st_mode & 07777) - try: - os.chown(src, st.st_uid, st.st_gid) - except OSError, e: - if e.errno != errno.EPERM: - raise - if self.selinux_enabled(): - context = self.selinux_context(dest) - self.set_context_if_different(src, context, False) + if os.path.exists(dest): + st = os.stat(dest) + os.chmod(src, st.st_mode & 07777) + try: + os.chown(src, st.st_uid, st.st_gid) + except OSError, e: + if e.errno != errno.EPERM: + raise + if self.selinux_enabled(): + context = self.selinux_context(dest) + self.set_context_if_different(src, context, False) os.rename(src, dest) - # == END DYNAMICALLY INSERTED CODE === """