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 import errno
from ansible import constants as C 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 import PY3
from ansible.module_utils.six.moves import cPickle from ansible.module_utils.six.moves import cPickle
from ansible.module_utils.connection import send_data, recv_data from ansible.module_utils.connection import send_data, recv_data
@ -141,7 +141,7 @@ class Server():
signal.signal(signal.SIGALRM, self.command_timeout) signal.signal(signal.SIGALRM, self.command_timeout)
signal.alarm(self.play_context.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) display.display('socket operation is %s' % op, log_only=True)
method = getattr(self, 'do_%s' % op, None) method = getattr(self, 'do_%s' % op, None)

View file

@ -23,7 +23,7 @@ import pty
import subprocess import subprocess
import sys 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.module_utils.six.moves import cPickle
from ansible.plugins.connection import ConnectionBase from ansible.plugins.connection import ConnectionBase
@ -84,5 +84,11 @@ class Connection(ConnectionBase):
self._connected = False self._connected = False
def run(self): 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:') rc, out, err = self._do_it('RUN:')
return out return to_text(out, errors='surrogate_or_strict')