From 2303044ffc68f8708529ffe236d41d491d4093ca Mon Sep 17 00:00:00 2001
From: Will Thames <will@thames.id.au>
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 5e3cfc55a9..dc02b047f8 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 '''