91
91
syslog.openlog('ansible-%s' % os.path.basename(__file__))
92
92
syslog.syslog(syslog.LOG_NOTICE, 'Command %s' % '|'.join(cmd))
94
p = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
95
(out, err) = p.communicate()
94
return self.module.run_command(cmd)
99
96
def group_del(self):
100
97
cmd = [self.module.get_bin_path('groupdel', True), self.name]
168
167
# ===========================================
171
This is a AIX Group manipulation class.
173
This overrides the following methods from the generic class:-
181
GROUPFILE = '/etc/group'
184
cmd = [self.module.get_bin_path('rmgroup', True), self.name]
185
return self.execute_command(cmd)
187
def group_add(self, **kwargs):
188
cmd = [self.module.get_bin_path('mkgroup', True)]
190
if key == 'gid' and kwargs[key] is not None:
191
cmd.append('id='+kwargs[key])
192
elif key == 'system' and kwargs[key] == 'yes':
194
cmd.append(self.name)
195
return self.execute_command(cmd)
197
def group_mod(self, **kwargs):
198
cmd = [self.module.get_bin_path('chgroup', True)]
199
info = self.group_info()
202
if kwargs[key] is not None and info[2] != int(kwargs[key]):
203
cmd.append('id='+kwargs[key])
205
return (None, '', '')
206
if self.module.check_mode:
207
return (True, '', '')
208
cmd.append(self.name)
209
return self.execute_command(cmd)
211
# ===========================================
171
214
module = AnsibleModule(
172
215
argument_spec = dict(
173
state=dict(default='present', choices=['present', 'absent']),
174
name=dict(required=True),
175
gid=dict(default=None),
176
system=dict(default='no', choices=['yes', 'no']),
216
state=dict(default='present', choices=['present', 'absent'], type='str'),
217
name=dict(required=True, type='str'),
218
gid=dict(default=None, type='str'),
219
system=dict(default='no', choices=['yes', 'no'], type='bool'),
221
supports_check_mode=True
180
224
group = Group(module)
192
236
result['name'] = group.name
193
237
result['state'] = group.state
194
239
if group.state == 'absent':
195
241
if group.group_exists():
242
if module.check_mode:
243
module.exit_json(changed=True)
196
244
(rc, out, err) = group.group_del()
198
module.fail_json(name=name, msg=err)
246
module.fail_json(name=group.name, msg=err)
199
248
elif group.state == 'present':
200
250
if not group.group_exists():
251
if module.check_mode:
252
module.exit_json(changed=True)
201
253
(rc, out, err) = group.group_add(gid=group.gid, system=group.system)
203
255
(rc, out, err) = group.group_mod(gid=group.gid)