Commit a303fca1 by Lorin Hochstein

Fix sudo_user copy regression

Treat errno 13 (permission denied) as one of the special cases in
atomic_move.

This type of error can occur because of sudo'ing to non-root user.

Fixes #3705
parent 8cc13590
...@@ -867,8 +867,8 @@ class AnsibleModule(object): ...@@ -867,8 +867,8 @@ class AnsibleModule(object):
# Optimistically try a rename, solves some corner cases and can avoid useless work. # Optimistically try a rename, solves some corner cases and can avoid useless work.
os.rename(src, dest) os.rename(src, dest)
except (IOError,OSError), e: except (IOError,OSError), e:
# only try workarounds for errno 18 (cross device) and 1 (not permited) # only try workarounds for errno 18 (cross device), 1 (not permited) and 13 (permission denied)
if e.errno != errno.EPERM and e.errno != errno.EXDEV: if e.errno != errno.EPERM and e.errno != errno.EXDEV and e.errno != errno.EACCES:
self.fail_json(msg='Could not replace file: %s to %s: %s' % (src, dest, e)) self.fail_json(msg='Could not replace file: %s to %s: %s' % (src, dest, e))
dest_dir = os.path.dirname(dest) dest_dir = os.path.dirname(dest)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment