added file flag preservation to atomic_move
preserves existing flag info if possible
This commit is contained in:
parent
a999452b68
commit
7faa041636
1 changed files with 14 additions and 0 deletions
|
@ -2007,8 +2007,22 @@ class AnsibleModule(object):
|
|||
if os.path.exists(b_dest):
|
||||
try:
|
||||
dest_stat = os.stat(b_dest)
|
||||
|
||||
# copy mode and ownership
|
||||
os.chmod(b_src, dest_stat.st_mode & PERM_BITS)
|
||||
os.chown(b_src, dest_stat.st_uid, dest_stat.st_gid)
|
||||
|
||||
# try to copy flags if possible
|
||||
if hasattr(os, 'chflags') and hasattr(dest_stat, 'st_flags'):
|
||||
try:
|
||||
os.chflags(b_src, dest_stat.st_flags)
|
||||
except OSError:
|
||||
e = get_exception()
|
||||
for err in 'EOPNOTSUPP', 'ENOTSUP':
|
||||
if hasattr(errno, err) and e.errno == getattr(errno, err):
|
||||
break
|
||||
else:
|
||||
raise
|
||||
except OSError:
|
||||
e = get_exception()
|
||||
if e.errno != errno.EPERM:
|
||||
|
|
Loading…
Reference in a new issue