mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
commit
949f8b8fc5
1 changed files with 34 additions and 23 deletions
|
@ -54,11 +54,10 @@ def add_group_info(kwargs):
|
||||||
|
|
||||||
def group_del(group):
|
def group_del(group):
|
||||||
cmd = [GROUPDEL, group]
|
cmd = [GROUPDEL, group]
|
||||||
rc = subprocess.call(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
p = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
if rc == 0:
|
(out, err) = p.communicate()
|
||||||
return True
|
rc = p.returncode
|
||||||
else:
|
return (rc, out, err)
|
||||||
return False
|
|
||||||
|
|
||||||
def group_add(group, **kwargs):
|
def group_add(group, **kwargs):
|
||||||
cmd = [GROUPADD]
|
cmd = [GROUPADD]
|
||||||
|
@ -69,11 +68,10 @@ def group_add(group, **kwargs):
|
||||||
elif key == 'system' and kwargs[key] == 'yes':
|
elif key == 'system' and kwargs[key] == 'yes':
|
||||||
cmd.append('-r')
|
cmd.append('-r')
|
||||||
cmd.append(group)
|
cmd.append(group)
|
||||||
rc = subprocess.call(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
p = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
if rc == 0:
|
(out, err) = p.communicate()
|
||||||
return True
|
rc = p.returncode
|
||||||
else:
|
return (rc, out, err)
|
||||||
return False
|
|
||||||
|
|
||||||
def group_mod(group, **kwargs):
|
def group_mod(group, **kwargs):
|
||||||
cmd = [GROUPMOD]
|
cmd = [GROUPMOD]
|
||||||
|
@ -84,13 +82,12 @@ def group_mod(group, **kwargs):
|
||||||
cmd.append('-g')
|
cmd.append('-g')
|
||||||
cmd.append(kwargs[key])
|
cmd.append(kwargs[key])
|
||||||
if len(cmd) == 1:
|
if len(cmd) == 1:
|
||||||
return False
|
return (None, '', '')
|
||||||
cmd.append(group)
|
cmd.append(group)
|
||||||
rc = subprocess.call(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
p = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
if rc == 0:
|
(out, err) = p.communicate()
|
||||||
return True
|
rc = p.returncode
|
||||||
else:
|
return (rc, out, err)
|
||||||
return False
|
|
||||||
|
|
||||||
def group_exists(group):
|
def group_exists(group):
|
||||||
try:
|
try:
|
||||||
|
@ -156,18 +153,32 @@ if system not in ['yes', 'no']:
|
||||||
if name is None:
|
if name is None:
|
||||||
fail_json(msg='name is required')
|
fail_json(msg='name is required')
|
||||||
|
|
||||||
changed = False
|
rc = None
|
||||||
rc = 0
|
out = ''
|
||||||
|
err = ''
|
||||||
|
result = {}
|
||||||
|
result['name'] = name
|
||||||
if state == 'absent':
|
if state == 'absent':
|
||||||
if group_exists(name):
|
if group_exists(name):
|
||||||
changed = group_del(name)
|
(rc, out, err) = group_del(name)
|
||||||
exit_json(name=name, changed=changed)
|
if rc != 0:
|
||||||
|
fail_json(name=name, msg=err)
|
||||||
elif state == 'present':
|
elif state == 'present':
|
||||||
if not group_exists(name):
|
if not group_exists(name):
|
||||||
changed = group_add(name, gid=gid, system=system)
|
(rc, out, err) = group_add(name, gid=gid, system=system)
|
||||||
else:
|
else:
|
||||||
changed = group_mod(name, gid=gid)
|
(rc, out, err) = group_mod(name, gid=gid)
|
||||||
|
|
||||||
exit_json(name=name, changed=changed)
|
if rc is not None and rc != 0:
|
||||||
|
fail_json(name=name, msg=err)
|
||||||
|
|
||||||
|
if rc is None:
|
||||||
|
result['changed'] = False
|
||||||
|
else:
|
||||||
|
result['changed'] = True
|
||||||
|
if out:
|
||||||
|
result['stdout'] = out
|
||||||
|
if err:
|
||||||
|
result['stderr'] = err
|
||||||
|
exit_json(**result)
|
||||||
fail_json(name=name, msg='Unexpected position reached')
|
fail_json(name=name, msg='Unexpected position reached')
|
||||||
|
|
Loading…
Reference in a new issue