better handling of checkmode for solaris fixes #2296

This commit is contained in:
Brian Coca 2015-10-19 16:38:15 -04:00 committed by Matt Clay
parent 876bdb62e1
commit f435f887fa

View file

@ -1360,20 +1360,21 @@ class SunOS(User):
cmd.append('-s') cmd.append('-s')
cmd.append(self.shell) cmd.append(self.shell)
if self.module.check_mode: # modify the user if cmd will do anything
return (0, '', '') if cmd_len != len(cmd):
else: (rc, out, err) = (0, '', '')
# modify the user if cmd will do anything if not self.module.check_mode:
if cmd_len != len(cmd):
cmd.append(self.name) cmd.append(self.name)
(rc, out, err) = self.execute_command(cmd) (rc, out, err) = self.execute_command(cmd)
if rc is not None and rc != 0: if rc is not None and rc != 0:
self.module.fail_json(name=self.name, msg=err, rc=rc) self.module.fail_json(name=self.name, msg=err, rc=rc)
else: else:
(rc, out, err) = (None, '', '') (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:
(rc, out, err) = (0, '', '')
if not self.module.check_mode:
try: try:
lines = [] lines = []
for line in open(self.SHADOWFILE, 'rb').readlines(): for line in open(self.SHADOWFILE, 'rb').readlines():
@ -1390,7 +1391,7 @@ class SunOS(User):
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)
# =========================================== # ===========================================
class DarwinUser(User): class DarwinUser(User):