ansible-connection Python3 fix (#26441)

* Fix a number of unicode <-> bytes mismatches

* Return socket_path as text, not bytes

* Docstring run()
This commit is contained in:
Nathaniel Case 2017-07-05 14:07:26 -04:00 committed by GitHub
parent b9b5183644
commit 28c6b226c7
2 changed files with 10 additions and 4 deletions

View file

@ -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)

View file

@ -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')