1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Fixes #5169 Evaluate check_mode in the user module SunOS class

This commit is contained in:
James Tanner 2013-12-05 00:44:55 -05:00
parent 71a5de6e72
commit cbfeb0a2ea

View file

@ -1137,27 +1137,30 @@ class SunOS(User):
cmd.append(self.name) cmd.append(self.name)
(rc, out, err) = self.execute_command(cmd) if self.module.check_mode:
if rc is not None and rc != 0: return (0, '', '')
self.module.fail_json(name=self.name, msg=err, rc=rc) else:
(rc, out, err) = self.execute_command(cmd)
if rc is not None and rc != 0:
self.module.fail_json(name=self.name, msg=err, rc=rc)
# we have to set the password by editing the /etc/shadow file # we have to set the password by editing the /etc/shadow file
if self.password is not None: if self.password is not None:
try: try:
lines = [] lines = []
for line in open(self.SHADOWFILE, 'rb').readlines(): for line in open(self.SHADOWFILE, 'rb').readlines():
fields = line.strip().split(':') fields = line.strip().split(':')
if not fields[0] == self.name: if not fields[0] == self.name:
lines.append(line) lines.append(line)
continue continue
fields[1] = self.password fields[1] = self.password
line = ':'.join(fields) line = ':'.join(fields)
lines.append('%s\n' % line) lines.append('%s\n' % line)
open(self.SHADOWFILE, 'w+').writelines(lines) open(self.SHADOWFILE, 'w+').writelines(lines)
except Exception, err: except Exception, err:
self.module.fail_json(msg="failed to update users password: %s" % str(err)) self.module.fail_json(msg="failed to update users password: %s" % str(err))
return (rc, out, err) return (rc, out, err)
def modify_user_usermod(self): def modify_user_usermod(self):
cmd = [self.module.get_bin_path('usermod', True)] cmd = [self.module.get_bin_path('usermod', True)]
@ -1214,33 +1217,36 @@ class SunOS(User):
cmd.append('-s') cmd.append('-s')
cmd.append(self.shell) cmd.append(self.shell)
# modify the user if cmd will do anything if self.module.check_mode:
if cmd_len != len(cmd): return (0, '', '')
cmd.append(self.name)
(rc, out, err) = self.execute_command(cmd)
if rc is not None and rc != 0:
self.module.fail_json(name=self.name, msg=err, rc=rc)
else: else:
(rc, out, err) = (None, '', '') # modify the user if cmd will do anything
if cmd_len != len(cmd):
cmd.append(self.name)
(rc, out, err) = self.execute_command(cmd)
if rc is not None and rc != 0:
self.module.fail_json(name=self.name, msg=err, rc=rc)
else:
(rc, out, err) = (None, '', '')
# we have to set the password by editing the /etc/shadow file # we have to set the password by editing the /etc/shadow file
if self.update_password == 'always' and self.password is not None and info[1] != self.password: if self.update_password == 'always' and self.password is not None and info[1] != self.password:
try: try:
lines = [] lines = []
for line in open(self.SHADOWFILE, 'rb').readlines(): for line in open(self.SHADOWFILE, 'rb').readlines():
fields = line.strip().split(':') fields = line.strip().split(':')
if not fields[0] == self.name: if not fields[0] == self.name:
lines.append(line) lines.append(line)
continue continue
fields[1] = self.password fields[1] = self.password
line = ':'.join(fields) line = ':'.join(fields)
lines.append('%s\n' % line) lines.append('%s\n' % line)
open(self.SHADOWFILE, 'w+').writelines(lines) open(self.SHADOWFILE, 'w+').writelines(lines)
rc = 0 rc = 0
except Exception, err: except Exception, err:
self.module.fail_json(msg="failed to update users password: %s" % str(err)) self.module.fail_json(msg="failed to update users password: %s" % str(err))
return (rc, out, err) return (rc, out, err)
# =========================================== # ===========================================