mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Merge branch 'numeric_ids_refactor' of git://github.com/insom/ansible into testing_427
This commit is contained in:
commit
553751aee1
1 changed files with 27 additions and 19 deletions
|
@ -319,15 +319,7 @@ class AnsibleModule(object):
|
||||||
st = os.stat(filename)
|
st = os.stat(filename)
|
||||||
uid = st.st_uid
|
uid = st.st_uid
|
||||||
gid = st.st_gid
|
gid = st.st_gid
|
||||||
try:
|
return (uid, gid)
|
||||||
user = pwd.getpwuid(uid)[0]
|
|
||||||
except KeyError:
|
|
||||||
user = str(uid)
|
|
||||||
try:
|
|
||||||
group = grp.getgrgid(gid)[0]
|
|
||||||
except KeyError:
|
|
||||||
group = str(gid)
|
|
||||||
return (user, group)
|
|
||||||
|
|
||||||
def set_default_selinux_context(self, path, changed):
|
def set_default_selinux_context(self, path, changed):
|
||||||
if not HAVE_SELINUX or not self.selinux_enabled():
|
if not HAVE_SELINUX or not self.selinux_enabled():
|
||||||
|
@ -366,14 +358,17 @@ class AnsibleModule(object):
|
||||||
path = os.path.expanduser(path)
|
path = os.path.expanduser(path)
|
||||||
if owner is None:
|
if owner is None:
|
||||||
return changed
|
return changed
|
||||||
user, group = self.user_and_group(path)
|
orig_uid, orig_gid = self.user_and_group(path)
|
||||||
if owner != user:
|
try:
|
||||||
|
uid = int(owner)
|
||||||
|
except ValueError:
|
||||||
try:
|
try:
|
||||||
uid = pwd.getpwnam(owner).pw_uid
|
uid = pwd.getpwnam(owner).pw_uid
|
||||||
except KeyError:
|
except KeyError:
|
||||||
self.fail_json(path=path, msg='chown failed: failed to look up user %s' % owner)
|
self.fail_json(path=path, msg='chown failed: failed to look up user %s' % owner)
|
||||||
if self.check_mode:
|
if self.check_mode:
|
||||||
return True
|
return True
|
||||||
|
if orig_uid != uid:
|
||||||
try:
|
try:
|
||||||
os.chown(path, uid, -1)
|
os.chown(path, uid, -1)
|
||||||
except OSError:
|
except OSError:
|
||||||
|
@ -385,14 +380,17 @@ class AnsibleModule(object):
|
||||||
path = os.path.expanduser(path)
|
path = os.path.expanduser(path)
|
||||||
if group is None:
|
if group is None:
|
||||||
return changed
|
return changed
|
||||||
old_user, old_group = self.user_and_group(path)
|
orig_uid, orig_gid = self.user_and_group(path)
|
||||||
if old_group != group:
|
try:
|
||||||
if self.check_mode:
|
gid = int(group)
|
||||||
return True
|
except ValueError:
|
||||||
try:
|
try:
|
||||||
gid = grp.getgrnam(group).gr_gid
|
gid = grp.getgrnam(group).gr_gid
|
||||||
except KeyError:
|
except KeyError:
|
||||||
self.fail_json(path=path, msg='chgrp failed: failed to look up group %s' % group)
|
self.fail_json(path=path, msg='chgrp failed: failed to look up group %s' % group)
|
||||||
|
if self.check_mode:
|
||||||
|
return True
|
||||||
|
if orig_gid != gid:
|
||||||
try:
|
try:
|
||||||
os.chown(path, -1, gid)
|
os.chown(path, -1, gid)
|
||||||
except OSError:
|
except OSError:
|
||||||
|
@ -472,8 +470,18 @@ class AnsibleModule(object):
|
||||||
if path is None:
|
if path is None:
|
||||||
return kwargs
|
return kwargs
|
||||||
if os.path.exists(path):
|
if os.path.exists(path):
|
||||||
(user, group) = self.user_and_group(path)
|
(uid, gid) = self.user_and_group(path)
|
||||||
kwargs['owner'] = user
|
kwargs['uid'] = uid
|
||||||
|
kwargs['gid'] = gid
|
||||||
|
try:
|
||||||
|
user = pwd.getpwuid(uid)[0]
|
||||||
|
except KeyError:
|
||||||
|
user = str(uid)
|
||||||
|
try:
|
||||||
|
group = grp.getgrgid(gid)[0]
|
||||||
|
except KeyError:
|
||||||
|
group = str(gid)
|
||||||
|
kwargs['owner'] = user
|
||||||
kwargs['group'] = group
|
kwargs['group'] = group
|
||||||
st = os.stat(path)
|
st = os.stat(path)
|
||||||
kwargs['mode'] = oct(stat.S_IMODE(st[stat.ST_MODE]))
|
kwargs['mode'] = oct(stat.S_IMODE(st[stat.ST_MODE]))
|
||||||
|
|
Loading…
Reference in a new issue