Python 3: there is no 'basestring'

This fixes a failing unit test.

In actual use (which is still quite far), I'm not sure if bytes ->
unicode conversion should be done here (in which case the code will fail
with an AttributeError: 'bytes' object has no attribute 'readlines'), or
inside self._connection.exec_command() (in which case my change is
correct).
This commit is contained in:
Marius Gedminas 2015-09-21 08:48:59 +03:00
parent 3f5ea43fb8
commit 9cdb6ebae3

View file

@ -19,16 +19,17 @@
from __future__ import (absolute_import, division, print_function) from __future__ import (absolute_import, division, print_function)
__metaclass__ = type __metaclass__ = type
from six.moves import StringIO
import base64 import base64
import json import json
import os import os
import random import random
import stat import stat
import sys
import tempfile import tempfile
import time import time
from six import string_types
from six.moves import StringIO
from ansible import constants as C from ansible import constants as C
from ansible.errors import AnsibleError, AnsibleConnectionFailure from ansible.errors import AnsibleError, AnsibleConnectionFailure
from ansible.executor.module_common import modify_module from ansible.executor.module_common import modify_module
@ -463,12 +464,12 @@ class ActionBase:
rc, stdin, stdout, stderr = self._connection.exec_command(cmd, tmp, in_data=in_data, sudoable=sudoable) rc, stdin, stdout, stderr = self._connection.exec_command(cmd, tmp, in_data=in_data, sudoable=sudoable)
self._display.debug("command execution done") self._display.debug("command execution done")
if not isinstance(stdout, basestring): if not isinstance(stdout, string_types):
out = ''.join(stdout.readlines()) out = ''.join(stdout.readlines())
else: else:
out = stdout out = stdout
if not isinstance(stderr, basestring): if not isinstance(stderr, string_types):
err = ''.join(stderr.readlines()) err = ''.join(stderr.readlines())
else: else:
err = stderr err = stderr