From 2303044ffc68f8708529ffe236d41d491d4093ca Mon Sep 17 00:00:00 2001 From: Will Thames Date: Tue, 16 Sep 2014 10:22:36 +1000 Subject: [PATCH] Applied fix for sudo with no prompt to paramiko Effectively reproduces @sivel's work from #8900 but for the paramiko connection. Fixes #8418 when using paramiko This allows `_remote_md5` to work if a sudo password is passed in when no sudo password is required. --- lib/ansible/runner/connection_plugins/paramiko_ssh.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/ansible/runner/connection_plugins/paramiko_ssh.py b/lib/ansible/runner/connection_plugins/paramiko_ssh.py index 5e3cfc55a96..dc02b047f80 100644 --- a/lib/ansible/runner/connection_plugins/paramiko_ssh.py +++ b/lib/ansible/runner/connection_plugins/paramiko_ssh.py @@ -204,6 +204,8 @@ class Connection(object): msg += ": %s" % str(e) raise errors.AnsibleConnectionFailed(msg) + no_prompt_out = '' + no_prompt_err = '' if not (self.runner.sudo and sudoable) and not (self.runner.su and su): if executable: @@ -259,6 +261,9 @@ class Connection(object): chan.sendall(self.runner.sudo_pass + '\n') elif su: chan.sendall(self.runner.su_pass + '\n') + else: + no_prompt_out += sudo_output + no_prompt_err += sudo_output except socket.timeout: @@ -267,7 +272,7 @@ class Connection(object): stdout = ''.join(chan.makefile('rb', bufsize)) stderr = ''.join(chan.makefile_stderr('rb', bufsize)) - return (chan.recv_exit_status(), '', stdout, stderr) + return (chan.recv_exit_status(), '', no_prompt_out + stdout, no_prompt_out + stderr) def put_file(self, in_path, out_path): ''' transfer a file from local to remote '''