if users are None/empty, dont assume sameness (#58875)

(cherry picked from commit 4ef2545eb5)

 also fix all cases of none remote/become users (#59397)
 some cases failed, when defaults were None on the plugins

(cherry picked from commit 74ac229fa8)
This commit is contained in:
Brian Coca 2019-07-17 11:17:48 -04:00 committed by Toshio Kuratomi
parent 89963a0062
commit 37f8684330
2 changed files with 7 additions and 3 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- Do not assume None is equal as connection and become tools can have different unspecified defaults.

View file

@ -1035,9 +1035,11 @@ class ActionBase(with_metaclass(ABCMeta, object)):
display.debug("_low_level_execute_command(): changing cwd to %s for this command" % chdir)
cmd = self._connection._shell.append_command('cd %s' % chdir, cmd)
if (sudoable and self._connection.transport != 'network_cli' and self._connection.become and
(C.BECOME_ALLOW_SAME_USER or
self.get_become_option('become_user') != self._get_remote_user())):
ruser = self._get_remote_user()
buser = self.get_become_option('become_user')
if (sudoable and self._connection.become and # if sudoable and have become
self._connection.transport != 'network_cli' and # if not using network_cli
(C.BECOME_ALLOW_SAME_USER or (buser != ruser or not any((ruser, buser))))): # if we allow same user PE or users are different and either is set
display.debug("_low_level_execute_command(): using become for this command")
cmd = self._connection.become.build_become_command(cmd, self._connection._shell)