summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToshio Kuratomi <a.badger@gmail.com>2017-02-01 14:20:22 -0800
committerToshio Kuratomi <a.badger@gmail.com>2017-02-02 13:44:55 -0800
commita0104cfe81f00fe6fb07b0ea8bc5c6d43d68f255 (patch)
tree85f8541bb7c22d49c74c02ea75a466685543df1e
parent5f5d1431948c3b093449c0deaf59bf7e064e51b7 (diff)
downloadansible-a0104cfe81f00fe6fb07b0ea8bc5c6d43d68f255.tar.gz
Do not substitute ssh_exeuctable until we need to
We need to use ssh_executable instead of hardcoding ssh in the command we run but we need to use "ssh" when we lookup the value of the {command}_extra_args variable. Do this by leaving binary as "ssh" and only expanding when we place it into b_command. Fixes #20862 (cherry picked from commit 62ba0840031441d8794a4cc2a67f78357680627b)
-rw-r--r--lib/ansible/plugins/connection/ssh.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/ansible/plugins/connection/ssh.py b/lib/ansible/plugins/connection/ssh.py
index 9eced8120b..995197b7e5 100644
--- a/lib/ansible/plugins/connection/ssh.py
+++ b/lib/ansible/plugins/connection/ssh.py
@@ -143,7 +143,10 @@ class Connection(ConnectionBase):
self.sshpass_pipe = os.pipe()
b_command += [b'sshpass', b'-d' + to_bytes(self.sshpass_pipe[0], nonstring='simplerepr', errors='surrogate_or_strict')]
- b_command += [to_bytes(binary, errors='surrogate_or_strict')]
+ if binary == 'ssh':
+ b_command += [to_bytes(self._play_context.ssh_executable, errors='surrogate_or_strict')]
+ else:
+ b_command += [to_bytes(binary, errors='surrogate_or_strict')]
#
# Next, additional arguments based on the configuration.
@@ -587,13 +590,10 @@ class Connection(ConnectionBase):
# data into /usr/bin/python inside a tty automatically invokes the
# python interactive-mode but the modules are not compatible with the
# interactive-mode ("unexpected indent" mainly because of empty lines)
-
- ssh_executable = self._play_context.ssh_executable
-
if not in_data and sudoable:
- args = (ssh_executable, '-tt', self.host, cmd)
+ args = ('ssh', '-tt', self.host, cmd)
else:
- args = (ssh_executable, self.host, cmd)
+ args = ('ssh', self.host, cmd)
cmd = self._build_command(*args)
(returncode, stdout, stderr) = self._run(cmd, in_data, sudoable=sudoable)
@@ -726,7 +726,7 @@ class Connection(ConnectionBase):
# temporarily disabled as we are forced to currently close connections after every task because of winrm
# if self._connected and self._persistent:
# ssh_executable = self._play_context.ssh_executable
- # cmd = self._build_command(ssh_executable, '-O', 'stop', self.host)
+ # cmd = self._build_command('ssh', '-O', 'stop', self.host)
#
# cmd = map(to_bytes, cmd)
# p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)