summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathaniel Case <this.is@nathanielca.se>2017-07-05 20:07:26 +0200
committerGitHub <noreply@github.com>2017-07-05 20:07:26 +0200
commit28c6b226c75b3677eb6f489c11b72cceee1cdfe4 (patch)
tree01530f885c9f1b9a2df49c57f851df5e880954f4
parentenabled vyos banner and config (#26438) (diff)
downloadansible-28c6b226c75b3677eb6f489c11b72cceee1cdfe4.tar.xz
ansible-28c6b226c75b3677eb6f489c11b72cceee1cdfe4.zip
ansible-connection Python3 fix (#26441)
* Fix a number of unicode <-> bytes mismatches * Return socket_path as text, not bytes * Docstring run()
-rwxr-xr-xbin/ansible-connection4
-rw-r--r--lib/ansible/plugins/connection/persistent.py10
2 files changed, 10 insertions, 4 deletions
diff --git a/bin/ansible-connection b/bin/ansible-connection
index 1f46a9e116..8e9114817c 100755
--- a/bin/ansible-connection
+++ b/bin/ansible-connection
@@ -40,7 +40,7 @@ import datetime
import errno
from ansible import constants as C
-from ansible.module_utils._text import to_bytes, to_native
+from ansible.module_utils._text import to_bytes, to_native, to_text
from ansible.module_utils.six import PY3
from ansible.module_utils.six.moves import cPickle
from ansible.module_utils.connection import send_data, recv_data
@@ -141,7 +141,7 @@ class Server():
signal.signal(signal.SIGALRM, self.command_timeout)
signal.alarm(self.play_context.timeout)
- op = data.split(':')[0]
+ op = to_text(data.split(b':')[0])
display.display('socket operation is %s' % op, log_only=True)
method = getattr(self, 'do_%s' % op, None)
diff --git a/lib/ansible/plugins/connection/persistent.py b/lib/ansible/plugins/connection/persistent.py
index 6b3adff3c1..9b0df90cbb 100644
--- a/lib/ansible/plugins/connection/persistent.py
+++ b/lib/ansible/plugins/connection/persistent.py
@@ -23,7 +23,7 @@ import pty
import subprocess
import sys
-from ansible.module_utils._text import to_bytes
+from ansible.module_utils._text import to_bytes, to_text
from ansible.module_utils.six.moves import cPickle
from ansible.plugins.connection import ConnectionBase
@@ -84,5 +84,11 @@ class Connection(ConnectionBase):
self._connected = False
def run(self):
+ """Returns the path of the persistent connection socket.
+
+ Attempts to ensure (within playcontext.timeout seconds) that the
+ socket path exists. If the path exists (or the timeout has expired),
+ returns the socket path.
+ """
rc, out, err = self._do_it('RUN:')
- return out
+ return to_text(out, errors='surrogate_or_strict')