From 436b173b24dd88ec77e12596fb9403142e6e08fd Mon Sep 17 00:00:00 2001 From: Pierre Guinoiseau Date: Sun, 10 Sep 2017 06:52:42 +1200 Subject: [PATCH] Fix py3 string issue in jail connection plugin (take 2) (#28374) * Fix py3 string issue in jail connection plugin --- lib/ansible/plugins/connection/jail.py | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/lib/ansible/plugins/connection/jail.py b/lib/ansible/plugins/connection/jail.py index 77e26fdb864..50ed38df541 100644 --- a/lib/ansible/plugins/connection/jail.py +++ b/lib/ansible/plugins/connection/jail.py @@ -40,7 +40,7 @@ import traceback from ansible.errors import AnsibleError from ansible.module_utils.six.moves import shlex_quote -from ansible.module_utils._text import to_bytes +from ansible.module_utils._text import to_bytes, to_native, to_text from ansible.plugins.connection import ConnectionBase, BUFSIZE try: @@ -94,16 +94,7 @@ class Connection(ConnectionBase): stdout, stderr = p.communicate() - return stdout.split() - - def get_jail_path(self): - p = subprocess.Popen([self.jls_cmd, '-j', to_bytes(self.jail), '-q', 'path'], - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, stderr=subprocess.PIPE) - - stdout, stderr = p.communicate() - # remove \n - return stdout[:-1] + return to_text(stdout, errors='surrogate_or_strict').split() def _connect(self): ''' connect to the jail; nothing to do here ''' @@ -179,7 +170,7 @@ class Connection(ConnectionBase): traceback.print_exc() raise AnsibleError("failed to transfer file %s to %s" % (in_path, out_path)) if p.returncode != 0: - raise AnsibleError("failed to transfer file %s to %s:\n%s\n%s" % (in_path, out_path, stdout, stderr)) + raise AnsibleError("failed to transfer file %s to %s:\n%s\n%s" % (in_path, out_path, to_native(stdout), to_native(stderr))) except IOError: raise AnsibleError("file or module does not exist at: %s" % in_path) @@ -205,7 +196,7 @@ class Connection(ConnectionBase): raise AnsibleError("failed to transfer file %s to %s" % (in_path, out_path)) stdout, stderr = p.communicate() if p.returncode != 0: - raise AnsibleError("failed to transfer file %s to %s:\n%s\n%s" % (in_path, out_path, stdout, stderr)) + raise AnsibleError("failed to transfer file %s to %s:\n%s\n%s" % (in_path, out_path, to_native(stdout), to_native(stderr))) def close(self): ''' terminate the connection; nothing to do here '''