summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuediger Pluem <53253255+rpluem-vf@users.noreply.github.com>2020-10-26 15:58:36 +0100
committerGitHub <noreply@github.com>2020-10-26 09:58:36 -0500
commit04989ae052c07cd1cce939192d64b2c2e49f77ad (patch)
treed94656d5b4f964cd6f792e61da8f57f205246f45
parentb4eebe66d87d6a6f8deec190f6db4daebfcc7487 (diff)
downloadansible-04989ae052c07cd1cce939192d64b2c2e49f77ad.tar.gz
Fix the reversed order of return values (#72088) (#72340)
AnsibleModule.run_command returns a tuple of return code, stdout and stderr. The module main function of the user module expects user.create_user to return a tuple of return code, stdout and stderr. Fix the locations where stdout and stderr got reversed. (cherry picked from commit e64ba97e8ab707b867998bbc915dd325fa6f74d0)
-rw-r--r--changelogs/fragments/fix_reversed_return_value_order_72088.yaml6
-rw-r--r--lib/ansible/modules/system/user.py34
2 files changed, 23 insertions, 17 deletions
diff --git a/changelogs/fragments/fix_reversed_return_value_order_72088.yaml b/changelogs/fragments/fix_reversed_return_value_order_72088.yaml
new file mode 100644
index 0000000000..c5190926a1
--- /dev/null
+++ b/changelogs/fragments/fix_reversed_return_value_order_72088.yaml
@@ -0,0 +1,6 @@
+bugfixes:
+ - >
+ user - AnsibleModule.run_command returns a tuple of return code, stdout
+ and stderr. The module main function of the user module expects
+ user.create_user to return a tuple of return code, stdout and stderr.
+ Fix the locations where stdout and stderr got reversed.
diff --git a/lib/ansible/modules/system/user.py b/lib/ansible/modules/system/user.py
index 77a86bb524..f1cc2a2184 100644
--- a/lib/ansible/modules/system/user.py
+++ b/lib/ansible/modules/system/user.py
@@ -671,9 +671,9 @@ class User(object):
cmd.append(self.name)
- (rc, err, out) = self.execute_command(cmd)
+ (rc, out, err) = self.execute_command(cmd)
if not self.local or rc != 0:
- return (rc, err, out)
+ return (rc, out, err)
if self.expires is not None:
if self.expires < time.gmtime(0):
@@ -681,7 +681,7 @@ class User(object):
else:
# Convert seconds since Epoch to days since Epoch
lexpires = int(math.floor(self.module.params['expires'])) // 86400
- (rc, _err, _out) = self.execute_command([lchage_cmd, '-E', to_native(lexpires), self.name])
+ (rc, _out, _err) = self.execute_command([lchage_cmd, '-E', to_native(lexpires), self.name])
out += _out
err += _err
if rc != 0:
@@ -825,18 +825,18 @@ class User(object):
cmd.append('-p')
cmd.append(self.password)
- (rc, err, out) = (None, '', '')
+ (rc, out, err) = (None, '', '')
# skip if no usermod changes to be made
if len(cmd) > 1:
cmd.append(self.name)
- (rc, err, out) = self.execute_command(cmd)
+ (rc, out, err) = self.execute_command(cmd)
if not self.local or not (rc is None or rc == 0):
- return (rc, err, out)
+ return (rc, out, err)
if lexpires is not None:
- (rc, _err, _out) = self.execute_command([lchage_cmd, '-E', to_native(lexpires), self.name])
+ (rc, _out, _err) = self.execute_command([lchage_cmd, '-E', to_native(lexpires), self.name])
out += _out
err += _err
if rc != 0:
@@ -2200,20 +2200,20 @@ class DarwinUser(User):
if self.append is False:
for remove in current - target:
- (_rc, _err, _out) = self.__modify_group(remove, 'delete')
+ (_rc, _out, _err) = self.__modify_group(remove, 'delete')
rc += rc
out += _out
err += _err
changed = True
for add in target - current:
- (_rc, _err, _out) = self.__modify_group(add, 'add')
+ (_rc, _out, _err) = self.__modify_group(add, 'add')
rc += _rc
out += _out
err += _err
changed = True
- return (rc, err, out, changed)
+ return (rc, out, err, changed)
def _update_system_user(self):
'''Hide or show user on login window according SELF.SYSTEM.
@@ -2284,7 +2284,7 @@ class DarwinUser(User):
def create_user(self, command_name='dscl'):
cmd = self._get_dscl()
cmd += ['-create', '/Users/%s' % self.name]
- (rc, err, out) = self.execute_command(cmd)
+ (rc, out, err) = self.execute_command(cmd)
if rc != 0:
self.module.fail_json(msg='Cannot create user "%s".' % self.name, err=err, out=out, rc=rc)
@@ -2311,16 +2311,16 @@ class DarwinUser(User):
cmd = self._get_dscl()
cmd += ['-create', '/Users/%s' % self.name, field[1], self.__dict__[field[0]]]
- (rc, _err, _out) = self.execute_command(cmd)
+ (rc, _out, _err) = self.execute_command(cmd)
if rc != 0:
self.module.fail_json(msg='Cannot add property "%s" to user "%s".' % (field[0], self.name), err=err, out=out, rc=rc)
out += _out
err += _err
if rc != 0:
- return (rc, _err, _out)
+ return (rc, _out, _err)
- (rc, _err, _out) = self._change_user_password()
+ (rc, _out, _err) = self._change_user_password()
out += _out
err += _err
@@ -2331,7 +2331,7 @@ class DarwinUser(User):
(rc, _out, _err, changed) = self._modify_group()
out += _out
err += _err
- return (rc, err, out)
+ return (rc, out, err)
def modify_user(self):
changed = None
@@ -2347,7 +2347,7 @@ class DarwinUser(User):
if current is None or current != to_text(self.__dict__[field[0]]):
cmd = self._get_dscl()
cmd += ['-create', '/Users/%s' % self.name, field[1], self.__dict__[field[0]]]
- (rc, _err, _out) = self.execute_command(cmd)
+ (rc, _out, _err) = self.execute_command(cmd)
if rc != 0:
self.module.fail_json(
msg='Cannot update property "%s" for user "%s".'
@@ -2356,7 +2356,7 @@ class DarwinUser(User):
out += _out
err += _err
if self.update_password == 'always' and self.password is not None:
- (rc, _err, _out) = self._change_user_password()
+ (rc, _out, _err) = self._change_user_password()
out += _out
err += _err
changed = rc