From 2cae7472ad1845ac10531e7e5c098dc8d3a5c693 Mon Sep 17 00:00:00 2001 From: Till Maas Date: Tue, 1 Apr 2014 09:23:52 +0200 Subject: [PATCH] ssh: propagate prompt to _communicate() _communicate() uses the prompt variable to detect wrong passwords early, therefore it needs to be passed to it from exec_command(). --- lib/ansible/runner/connection_plugins/ssh.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ansible/runner/connection_plugins/ssh.py b/lib/ansible/runner/connection_plugins/ssh.py index 876f2063848..5c60f884675 100644 --- a/lib/ansible/runner/connection_plugins/ssh.py +++ b/lib/ansible/runner/connection_plugins/ssh.py @@ -258,6 +258,7 @@ class Connection(object): sudocmd, prompt, success_key = utils.make_su_cmd(su_user, executable, cmd) ssh_cmd.append(sudocmd) elif not self.runner.sudo or not sudoable: + prompt = None if executable: ssh_cmd.append(executable + ' -c ' + pipes.quote(cmd)) else: @@ -327,7 +328,7 @@ class Connection(object): elif su: stdin.write(self.runner.su_pass + '\n') - (returncode, stdout, stderr) = self._communicate(p, stdin, in_data, su=su, sudoable=sudoable) + (returncode, stdout, stderr) = self._communicate(p, stdin, in_data, su=su, sudoable=sudoable, prompt=prompt) if C.HOST_KEY_CHECKING and not_in_host_file: # lock around the initial SSH connectivity so the user prompt about whether to add