Do not use str() on exceptions (#46950)
This commit is contained in:
parent
2436aa1a4e
commit
a80c25cbd9
30 changed files with 76 additions and 66 deletions
|
@ -274,7 +274,7 @@ class DocCLI(CLI):
|
|||
except Exception as e:
|
||||
display.vvv(traceback.format_exc())
|
||||
raise AnsibleError(
|
||||
"%s %s missing documentation (or could not parse documentation): %s\n" % (plugin_type, plugin, str(e)))
|
||||
"%s %s missing documentation (or could not parse documentation): %s\n" % (plugin_type, plugin, to_native(e)))
|
||||
|
||||
def find_plugins(self, path, ptype):
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ from ansible.galaxy.api import GalaxyAPI
|
|||
from ansible.galaxy.login import GalaxyLogin
|
||||
from ansible.galaxy.role import GalaxyRole
|
||||
from ansible.galaxy.token import GalaxyToken
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.module_utils._text import to_native, to_text
|
||||
from ansible.playbook.role.requirement import RoleRequirement
|
||||
|
||||
try:
|
||||
|
@ -361,7 +361,7 @@ class GalaxyCLI(CLI):
|
|||
raise AnsibleError("Invalid role requirements file")
|
||||
f.close()
|
||||
except (IOError, OSError) as e:
|
||||
raise AnsibleError('Unable to open %s: %s' % (role_file, str(e)))
|
||||
raise AnsibleError('Unable to open %s: %s' % (role_file, to_native(e)))
|
||||
else:
|
||||
# roles were specified directly, so we'll just go out grab them
|
||||
# (and their dependencies, unless the user doesn't want us to).
|
||||
|
@ -397,7 +397,7 @@ class GalaxyCLI(CLI):
|
|||
try:
|
||||
installed = role.install()
|
||||
except AnsibleError as e:
|
||||
display.warning("- %s was NOT installed successfully: %s " % (role.name, str(e)))
|
||||
display.warning(u"- %s was NOT installed successfully: %s " % (role.name, to_text(e)))
|
||||
self.exit_without_ignore()
|
||||
continue
|
||||
|
||||
|
@ -451,7 +451,7 @@ class GalaxyCLI(CLI):
|
|||
else:
|
||||
display.display('- %s is not installed, skipping.' % role_name)
|
||||
except Exception as e:
|
||||
raise AnsibleError("Failed to remove role %s: %s" % (role_name, str(e)))
|
||||
raise AnsibleError("Failed to remove role %s: %s" % (role_name, to_native(e)))
|
||||
|
||||
return 0
|
||||
|
||||
|
|
|
@ -238,7 +238,7 @@ class GalaxyAPI(object):
|
|||
done = (data.get('next_link', None) is None)
|
||||
return results
|
||||
except Exception as error:
|
||||
raise AnsibleError("Failed to download the %s list: %s" % (what, str(error)))
|
||||
raise AnsibleError("Failed to download the %s list: %s" % (what, to_native(error)))
|
||||
|
||||
@g_connect
|
||||
def search_roles(self, search, **kwargs):
|
||||
|
|
|
@ -32,6 +32,7 @@ from distutils.version import LooseVersion
|
|||
from shutil import rmtree
|
||||
|
||||
from ansible.errors import AnsibleError
|
||||
from ansible.module_utils._text import to_native, to_text
|
||||
from ansible.module_utils.urls import open_url
|
||||
from ansible.playbook.role.requirement import RoleRequirement
|
||||
from ansible.galaxy.api import GalaxyAPI
|
||||
|
@ -189,7 +190,7 @@ class GalaxyRole(object):
|
|||
temp_file.close()
|
||||
return temp_file.name
|
||||
except Exception as e:
|
||||
display.error("failed to download the file: %s" % str(e))
|
||||
display.error(u"failed to download the file: %s" % to_text(e))
|
||||
|
||||
return False
|
||||
|
||||
|
@ -333,7 +334,7 @@ class GalaxyRole(object):
|
|||
self.path = self.paths[current + 1]
|
||||
error = False
|
||||
if error:
|
||||
raise AnsibleError("Could not update files in %s: %s" % (self.path, str(e)))
|
||||
raise AnsibleError("Could not update files in %s: %s" % (self.path, to_native(e)))
|
||||
|
||||
# return the parsed yaml metadata
|
||||
display.display("- %s was installed successfully" % str(self))
|
||||
|
@ -341,7 +342,7 @@ class GalaxyRole(object):
|
|||
try:
|
||||
os.unlink(tmp_file)
|
||||
except (OSError, IOError) as e:
|
||||
display.warning("Unable to remove tmp file (%s): %s" % (tmp_file, str(e)))
|
||||
display.warning(u"Unable to remove tmp file (%s): %s" % (tmp_file, to_text(e)))
|
||||
return True
|
||||
|
||||
return False
|
||||
|
|
|
@ -268,7 +268,7 @@ from distutils.version import LooseVersion
|
|||
|
||||
from ansible.module_utils.basic import AnsibleModule, get_module_path
|
||||
from ansible.module_utils.six import b, string_types
|
||||
from ansible.module_utils._text import to_native
|
||||
from ansible.module_utils._text import to_native, to_text
|
||||
|
||||
|
||||
def relocate_repo(module, result, repo_dir, old_repo_dir, worktree_dir):
|
||||
|
@ -286,7 +286,7 @@ def relocate_repo(module, result, repo_dir, old_repo_dir, worktree_dir):
|
|||
# if we already moved the .git dir, roll it back
|
||||
if os.path.exists(repo_dir):
|
||||
shutil.move(repo_dir, old_repo_dir)
|
||||
module.fail_json(msg='Unable to move git dir. %s' % str(err))
|
||||
module.fail_json(msg=u'Unable to move git dir. %s' % to_text(err))
|
||||
|
||||
|
||||
def head_splitter(headfile, remote, module=None, fail_on_error=False):
|
||||
|
@ -690,7 +690,7 @@ def get_head_branch(git_path, module, dest, remote, bare=False):
|
|||
module.fail_json(
|
||||
msg='Current repo does not have a valid reference to a '
|
||||
'separate Git dir or it refers to the invalid path',
|
||||
details=str(err),
|
||||
details=to_text(err),
|
||||
)
|
||||
# Read .git/HEAD for the name of the branch.
|
||||
# If we're in a detached HEAD state, look up the branch associated with
|
||||
|
@ -992,8 +992,8 @@ def create_archive(git_path, module, dest, archive, version, repo, result):
|
|||
except OSError as e:
|
||||
module.fail_json(msg="Failed to move %s to %s" %
|
||||
(new_archive, archive),
|
||||
details="Error occured while moving : %s"
|
||||
% to_native(e))
|
||||
details=u"Error occured while moving : %s"
|
||||
% to_text(e))
|
||||
else:
|
||||
# Perform archive from local directory
|
||||
git_archive(git_path, module, dest, archive, archive_fmt, version)
|
||||
|
@ -1100,7 +1100,7 @@ def main():
|
|||
module.fail_json(
|
||||
msg='Current repo does not have a valid reference to a '
|
||||
'separate Git dir or it refers to the invalid path',
|
||||
details=str(err),
|
||||
details=to_text(err),
|
||||
)
|
||||
gitconfig = os.path.join(repo_path, 'config')
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ except ImportError:
|
|||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.six import binary_type
|
||||
from ansible.module_utils._text import to_bytes
|
||||
from ansible.module_utils._text import to_bytes, to_text
|
||||
|
||||
|
||||
def has_boolean_value(module, name):
|
||||
|
@ -238,7 +238,7 @@ def semanage_boolean_value(module, name, state):
|
|||
semanage_commit(module, handle)
|
||||
semanage_destroy_handle(module, handle)
|
||||
except Exception as e:
|
||||
module.fail_json(msg="Failed to manage policy for boolean %s: %s" % (name, str(e)))
|
||||
module.fail_json(msg=u"Failed to manage policy for boolean %s: %s" % (name, to_text(e)))
|
||||
return changed
|
||||
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ class SysctlModule(object):
|
|||
rc, out, err = self.module.run_command(sysctl_args)
|
||||
|
||||
if rc != 0:
|
||||
self.module.fail_json(msg="Failed to reload sysctl: %s" % str(out) + str(err))
|
||||
self.module.fail_json(msg="Failed to reload sysctl: %s" % to_native(out) + to_native(err))
|
||||
|
||||
# ==============================================================
|
||||
# SYSCTL FILE MANAGEMENT
|
||||
|
@ -297,7 +297,7 @@ class SysctlModule(object):
|
|||
with open(self.sysctl_file, "r") as read_file:
|
||||
lines = read_file.readlines()
|
||||
except IOError as e:
|
||||
self.module.fail_json(msg="Failed to open %s: %s" % (self.sysctl_file, to_native(e)))
|
||||
self.module.fail_json(msg="Failed to open %s: %s" % (to_native(self.sysctl_file), to_native(e)))
|
||||
|
||||
for line in lines:
|
||||
line = line.strip()
|
||||
|
|
|
@ -19,6 +19,8 @@ import signal
|
|||
import time
|
||||
import syslog
|
||||
|
||||
from ansible.module_utils._text import to_text
|
||||
|
||||
PY3 = sys.version_info[0] == 3
|
||||
|
||||
syslog.openlog('ansible-%s' % os.path.basename(__file__))
|
||||
|
@ -164,7 +166,7 @@ def _run_module(wrapped_cmd, jid, job_path):
|
|||
result = {
|
||||
"failed": 1,
|
||||
"cmd": wrapped_cmd,
|
||||
"msg": str(e),
|
||||
"msg": to_text(e),
|
||||
"outdata": outdata, # temporary notice only
|
||||
"stderr": stderr
|
||||
}
|
||||
|
|
|
@ -1033,7 +1033,7 @@ class VaultEditor:
|
|||
with open(filename, "rb") as fh:
|
||||
data = fh.read()
|
||||
except Exception as e:
|
||||
raise AnsibleError(str(e))
|
||||
raise AnsibleError(to_native(e))
|
||||
|
||||
return data
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import os
|
||||
|
||||
from ansible.errors import AnsibleParserError, AnsibleError
|
||||
from ansible.module_utils._text import to_native
|
||||
from ansible.module_utils.six import iteritems, string_types
|
||||
from ansible.playbook.attribute import Attribute, FieldAttribute
|
||||
from ansible.playbook.base import Base
|
||||
|
@ -80,7 +81,7 @@ class RoleMetadata(Base):
|
|||
role_def['name'] = def_parsed['name']
|
||||
roles.append(role_def)
|
||||
except AnsibleError as exc:
|
||||
raise AnsibleParserError(str(exc), obj=role_def, orig_exc=exc)
|
||||
raise AnsibleParserError(to_native(exc), obj=role_def, orig_exc=exc)
|
||||
|
||||
current_role_path = None
|
||||
if self._owner:
|
||||
|
|
|
@ -1057,7 +1057,7 @@ class ActionBase(with_metaclass(ABCMeta, object)):
|
|||
with open(source, 'rb') as src:
|
||||
src_contents = src.read()
|
||||
except Exception as e:
|
||||
raise AnsibleError("Unexpected error while reading source (%s) for diff: %s " % (source, str(e)))
|
||||
raise AnsibleError("Unexpected error while reading source (%s) for diff: %s " % (source, to_native(e)))
|
||||
|
||||
if b"\x00" in src_contents:
|
||||
diff['src_binary'] = 1
|
||||
|
|
|
@ -41,7 +41,7 @@ class ActionModule(_ActionModule):
|
|||
try:
|
||||
self._handle_template()
|
||||
except ValueError as exc:
|
||||
return dict(failed=True, msg=str(exc))
|
||||
return dict(failed=True, msg=to_text(exc))
|
||||
|
||||
result = super(ActionModule, self).run(tmp, task_vars)
|
||||
del tmp # tmp no longer has any effect
|
||||
|
|
|
@ -22,6 +22,7 @@ __metaclass__ = type
|
|||
import time
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.plugins.action import ActionBase
|
||||
|
||||
try:
|
||||
|
@ -112,7 +113,7 @@ class ActionModule(ActionBase):
|
|||
|
||||
except TimedOutException as e:
|
||||
result['failed'] = True
|
||||
result['msg'] = str(e)
|
||||
result['msg'] = to_text(e)
|
||||
|
||||
elapsed = datetime.now() - start
|
||||
result['elapsed'] = elapsed.seconds
|
||||
|
|
|
@ -70,6 +70,7 @@ try:
|
|||
except ImportError:
|
||||
HAS_REQUESTS = False
|
||||
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
|
||||
|
||||
|
@ -152,7 +153,7 @@ class CallbackModule(CallbackBase):
|
|||
verify=self.ssl_verify)
|
||||
r.raise_for_status()
|
||||
except requests.exceptions.RequestException as err:
|
||||
print(str(err))
|
||||
print(to_text(err))
|
||||
|
||||
def _build_log(self, data):
|
||||
logs = []
|
||||
|
@ -214,7 +215,7 @@ class CallbackModule(CallbackBase):
|
|||
verify=self.ssl_verify)
|
||||
r.raise_for_status()
|
||||
except requests.exceptions.RequestException as err:
|
||||
print(str(err))
|
||||
print(to_text(err))
|
||||
self.items[host] = []
|
||||
|
||||
def append_result(self, result):
|
||||
|
|
|
@ -24,6 +24,7 @@ import getpass
|
|||
from base64 import b64encode
|
||||
from datetime import datetime
|
||||
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.module_utils.urls import open_url
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
|
||||
|
@ -259,4 +260,4 @@ class CallbackModule(CallbackBase):
|
|||
url_username=self.grafana_user, url_password=self.grafana_password,
|
||||
http_agent=self.http_agent, force_basic_auth=self.force_basic_auth)
|
||||
except Exception as e:
|
||||
self._display.error('Could not submit message to Grafana: %s' % str(e))
|
||||
self._display.error(u'Could not submit message to Grafana: %s' % to_text(e))
|
||||
|
|
|
@ -111,7 +111,7 @@ try:
|
|||
except ImportError:
|
||||
HAS_FLATDICT = False
|
||||
|
||||
from ansible.module_utils._text import to_bytes, to_text, to_native
|
||||
from ansible.module_utils._text import to_bytes, to_text
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
|
||||
# Todo:
|
||||
|
@ -147,7 +147,7 @@ class PlainTextSocketAppender(object):
|
|||
self.open_connection()
|
||||
return
|
||||
except Exception as e:
|
||||
self._display.vvvv("Unable to connect to Logentries: %s" % str(e))
|
||||
self._display.vvvv(u"Unable to connect to Logentries: %s" % to_text(e))
|
||||
|
||||
root_delay *= 2
|
||||
if root_delay > self.MAX_DELAY:
|
||||
|
@ -247,7 +247,7 @@ class CallbackModule(CallbackBase):
|
|||
self.use_tls = self.get_option('use_tls')
|
||||
self.flatten = self.get_option('flatten')
|
||||
except KeyError as e:
|
||||
self._display.warning("Missing option for Logentries callback plugin: %s" % to_native(e))
|
||||
self._display.warning(u"Missing option for Logentries callback plugin: %s" % to_text(e))
|
||||
self.disabled = True
|
||||
|
||||
try:
|
||||
|
|
|
@ -53,6 +53,7 @@ try:
|
|||
except ImportError:
|
||||
cli = None
|
||||
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.module_utils.urls import open_url
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
|
||||
|
@ -124,8 +125,8 @@ class CallbackModule(CallbackBase):
|
|||
response = open_url(self.webhook_url, data=data)
|
||||
return response.read()
|
||||
except Exception as e:
|
||||
self._display.warning('Could not submit message to Slack: %s' %
|
||||
str(e))
|
||||
self._display.warning(u'Could not submit message to Slack: %s' %
|
||||
to_text(e))
|
||||
|
||||
def v2_playbook_on_start(self, playbook):
|
||||
self.playbook_name = os.path.basename(playbook._file_name)
|
||||
|
|
|
@ -20,7 +20,7 @@ DOCUMENTATION = '''
|
|||
import os
|
||||
|
||||
from ansible.constants import TREE_DIR
|
||||
from ansible.module_utils._text import to_bytes
|
||||
from ansible.module_utils._text import to_bytes, to_text
|
||||
from ansible.plugins.callback import CallbackBase
|
||||
from ansible.utils.path import makedirs_safe
|
||||
|
||||
|
@ -53,7 +53,7 @@ class CallbackModule(CallbackBase):
|
|||
with open(path, 'wb+') as fd:
|
||||
fd.write(buf)
|
||||
except (OSError, IOError) as e:
|
||||
self._display.warning("Unable to write to %s's file: %s" % (hostname, str(e)))
|
||||
self._display.warning(u"Unable to write to %s's file: %s" % (hostname, to_text(e)))
|
||||
|
||||
def result_to_tree(self, result):
|
||||
if self.tree:
|
||||
|
|
|
@ -296,7 +296,7 @@ class Connection(NetworkConnectionBase):
|
|||
ssh_config=ssh_config
|
||||
)
|
||||
except SSHUnknownHostError as exc:
|
||||
raise AnsibleConnectionFailure(str(exc))
|
||||
raise AnsibleConnectionFailure(to_native(exc))
|
||||
except ImportError as exc:
|
||||
raise AnsibleError("connection=netconf is not supported on {0}".format(self._network_os))
|
||||
|
||||
|
|
|
@ -145,7 +145,7 @@ from ansible.module_utils.six import iteritems
|
|||
from ansible.module_utils.six.moves import input
|
||||
from ansible.plugins.connection import ConnectionBase
|
||||
from ansible.utils.path import makedirs_safe
|
||||
from ansible.module_utils._text import to_bytes, to_native
|
||||
from ansible.module_utils._text import to_bytes, to_native, to_text
|
||||
|
||||
try:
|
||||
from __main__ import display
|
||||
|
@ -354,10 +354,10 @@ class Connection(ConnectionBase):
|
|||
except paramiko.ssh_exception.BadHostKeyException as e:
|
||||
raise AnsibleConnectionFailure('host key mismatch for %s' % e.hostname)
|
||||
except Exception as e:
|
||||
msg = str(e)
|
||||
if "PID check failed" in msg:
|
||||
msg = to_text(e)
|
||||
if u"PID check failed" in msg:
|
||||
raise AnsibleError("paramiko version issue, please upgrade paramiko on the machine running ansible")
|
||||
elif "Private key file is encrypted" in msg:
|
||||
elif u"Private key file is encrypted" in msg:
|
||||
msg = 'ssh %s@%s:%s : %s\nTo connect as a different user, use -u <username>.' % (
|
||||
self._play_context.remote_user, self._play_context.remote_addr, port, msg)
|
||||
raise AnsibleConnectionFailure(msg)
|
||||
|
@ -380,10 +380,11 @@ class Connection(ConnectionBase):
|
|||
self.ssh.get_transport().set_keepalive(5)
|
||||
chan = self.ssh.get_transport().open_session()
|
||||
except Exception as e:
|
||||
msg = "Failed to open session"
|
||||
if len(str(e)) > 0:
|
||||
msg += ": %s" % str(e)
|
||||
raise AnsibleConnectionFailure(msg)
|
||||
text_e = to_text(e)
|
||||
msg = u"Failed to open session"
|
||||
if text_e:
|
||||
msg += u": %s" % text_e
|
||||
raise AnsibleConnectionFailure(to_native(msg))
|
||||
|
||||
# sudo usually requires a PTY (cf. requiretty option), therefore
|
||||
# we give it one by default (pty=True in ansible.cfg), and we try
|
||||
|
|
|
@ -43,7 +43,7 @@ from jinja2.filters import environmentfilter, do_groupby as _do_groupby
|
|||
from ansible.errors import AnsibleError, AnsibleFilterError
|
||||
from ansible.module_utils.six import iteritems, string_types, integer_types, reraise
|
||||
from ansible.module_utils.six.moves import reduce, shlex_quote
|
||||
from ansible.module_utils._text import to_bytes, to_text
|
||||
from ansible.module_utils._text import to_bytes, to_native, to_text
|
||||
from ansible.module_utils.common.collections import is_sequence
|
||||
from ansible.module_utils.common._collections_compat import MutableMapping
|
||||
from ansible.parsing.ajson import AnsibleJSONEncoder
|
||||
|
@ -261,7 +261,7 @@ def get_encrypted_password(password, hashtype='sha512', salt=None, salt_size=Non
|
|||
try:
|
||||
return passlib_or_crypt(password, hashtype, salt=salt, salt_size=salt_size, rounds=rounds)
|
||||
except AnsibleError as e:
|
||||
reraise(AnsibleFilterError, AnsibleFilterError(str(e), orig_exc=e), sys.exc_info()[2])
|
||||
reraise(AnsibleFilterError, AnsibleFilterError(to_native(e), orig_exc=e), sys.exc_info()[2])
|
||||
|
||||
|
||||
def to_uuid(string):
|
||||
|
|
|
@ -139,14 +139,14 @@ def logarithm(x, base=math.e):
|
|||
else:
|
||||
return math.log(x, base)
|
||||
except TypeError as e:
|
||||
raise AnsibleFilterError('log() can only be used on numbers: %s' % str(e))
|
||||
raise AnsibleFilterError('log() can only be used on numbers: %s' % to_native(e))
|
||||
|
||||
|
||||
def power(x, y):
|
||||
try:
|
||||
return math.pow(x, y)
|
||||
except TypeError as e:
|
||||
raise AnsibleFilterError('pow() can only be used on numbers: %s' % str(e))
|
||||
raise AnsibleFilterError('pow() can only be used on numbers: %s' % to_native(e))
|
||||
|
||||
|
||||
def inversepower(x, base=2):
|
||||
|
@ -156,7 +156,7 @@ def inversepower(x, base=2):
|
|||
else:
|
||||
return math.pow(x, 1.0 / float(base))
|
||||
except (ValueError, TypeError) as e:
|
||||
raise AnsibleFilterError('root() can only be used on numbers: %s' % str(e))
|
||||
raise AnsibleFilterError('root() can only be used on numbers: %s' % to_native(e))
|
||||
|
||||
|
||||
def human_readable(size, isbits=False, unit=None):
|
||||
|
|
|
@ -27,7 +27,7 @@ import string
|
|||
|
||||
from xml.etree.ElementTree import fromstring
|
||||
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.module_utils._text import to_native, to_text
|
||||
from ansible.module_utils.network.common.utils import Template
|
||||
from ansible.module_utils.six import iteritems, string_types
|
||||
from ansible.module_utils.common._collections_compat import Mapping
|
||||
|
@ -96,7 +96,7 @@ def parse_cli(output, tmpl):
|
|||
try:
|
||||
template = Template()
|
||||
except ImportError as exc:
|
||||
raise AnsibleError(str(exc))
|
||||
raise AnsibleError(to_native(exc))
|
||||
|
||||
spec = yaml.safe_load(open(tmpl).read())
|
||||
obj = {}
|
||||
|
@ -241,7 +241,7 @@ def parse_cli_textfsm(value, template):
|
|||
try:
|
||||
template = open(template)
|
||||
except IOError as exc:
|
||||
raise AnsibleError(str(exc))
|
||||
raise AnsibleError(to_native(exc))
|
||||
|
||||
re_table = textfsm.TextFSM(template)
|
||||
fsm_results = re_table.ParseText(value)
|
||||
|
@ -333,7 +333,7 @@ def parse_xml(output, tmpl):
|
|||
try:
|
||||
template = Template()
|
||||
except ImportError as exc:
|
||||
raise AnsibleError(str(exc))
|
||||
raise AnsibleError(to_native(exc))
|
||||
|
||||
spec = yaml.safe_load(open(tmpl).read())
|
||||
obj = {}
|
||||
|
|
|
@ -65,7 +65,7 @@ import os
|
|||
from ansible.errors import AnsibleError, AnsibleParserError
|
||||
from ansible.plugins.lookup import LookupBase
|
||||
from ansible.module_utils.urls import open_url
|
||||
from ansible.module_utils._text import to_bytes
|
||||
from ansible.module_utils._text import to_bytes, to_native
|
||||
from ansible.module_utils.six.moves.urllib.error import HTTPError
|
||||
|
||||
try:
|
||||
|
@ -118,7 +118,7 @@ class GrafanaAPI:
|
|||
try:
|
||||
r = open_url('%s/api/user/using/%s' % (self.grafana_url, self.grafana_org_id), headers=headers, method='POST')
|
||||
except HTTPError as e:
|
||||
raise GrafanaAPIException('Unable to switch to organization %s : %s' % (self.grafana_org_id, str(e)))
|
||||
raise GrafanaAPIException('Unable to switch to organization %s : %s' % (self.grafana_org_id, to_native(e)))
|
||||
if r.getcode() != 200:
|
||||
raise GrafanaAPIException('Unable to switch to organization %s : %s' % (self.grafana_org_id, str(r.getcode())))
|
||||
|
||||
|
@ -144,12 +144,12 @@ class GrafanaAPI:
|
|||
else:
|
||||
r = open_url('%s/api/search/' % self.grafana_url, headers=headers, method='GET')
|
||||
except HTTPError as e:
|
||||
raise GrafanaAPIException('Unable to search dashboards : %s' % str(e))
|
||||
raise GrafanaAPIException('Unable to search dashboards : %s' % to_native(e))
|
||||
if r.getcode() == 200:
|
||||
try:
|
||||
dashboard_list = json.loads(r.read())
|
||||
except Exception as e:
|
||||
raise GrafanaAPIException('Unable to parse json list %s' % str(e))
|
||||
raise GrafanaAPIException('Unable to parse json list %s' % to_native(e))
|
||||
else:
|
||||
raise GrafanaAPIException('Unable to list grafana dashboards : %s' % str(r.getcode()))
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ import json
|
|||
import re
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils._text import to_text, to_bytes
|
||||
from ansible.module_utils._text import to_text, to_bytes, to_native
|
||||
from ansible.errors import AnsibleConnectionFailure, AnsibleError
|
||||
from ansible.plugins.netconf import NetconfBase
|
||||
from ansible.plugins.netconf import ensure_connected
|
||||
|
@ -116,7 +116,7 @@ class Netconf(NetconfBase):
|
|||
timeout=obj._play_context.timeout
|
||||
)
|
||||
except SSHUnknownHostError as exc:
|
||||
raise AnsibleConnectionFailure(str(exc))
|
||||
raise AnsibleConnectionFailure(to_native(exc))
|
||||
|
||||
guessed_os = None
|
||||
for c in m.server_capabilities:
|
||||
|
|
|
@ -25,6 +25,7 @@ import re
|
|||
import collections
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils._text import to_native
|
||||
from ansible.module_utils.network.common.netconf import remove_namespaces
|
||||
from ansible.module_utils.network.iosxr.iosxr import build_xml, etree_find
|
||||
from ansible.errors import AnsibleConnectionFailure, AnsibleError
|
||||
|
@ -111,7 +112,7 @@ class Netconf(NetconfBase):
|
|||
timeout=obj._play_context.timeout
|
||||
)
|
||||
except SSHUnknownHostError as exc:
|
||||
raise AnsibleConnectionFailure(str(exc))
|
||||
raise AnsibleConnectionFailure(to_native(exc))
|
||||
|
||||
guessed_os = None
|
||||
for c in m.server_capabilities:
|
||||
|
|
|
@ -23,7 +23,7 @@ import json
|
|||
import re
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils._text import to_text, to_bytes
|
||||
from ansible.module_utils._text import to_text, to_bytes, to_native
|
||||
from ansible.errors import AnsibleConnectionFailure, AnsibleError
|
||||
from ansible.plugins.netconf import NetconfBase
|
||||
from ansible.plugins.netconf import ensure_connected
|
||||
|
@ -120,7 +120,7 @@ class Netconf(NetconfBase):
|
|||
timeout=obj._play_context.timeout
|
||||
)
|
||||
except SSHUnknownHostError as exc:
|
||||
raise AnsibleConnectionFailure(str(exc))
|
||||
raise AnsibleConnectionFailure(to_native(exc))
|
||||
|
||||
guessed_os = None
|
||||
for c in m.server_capabilities:
|
||||
|
|
|
@ -23,7 +23,7 @@ import json
|
|||
import re
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils._text import to_text, to_bytes
|
||||
from ansible.module_utils._text import to_text, to_bytes, to_native
|
||||
from ansible.errors import AnsibleConnectionFailure, AnsibleError
|
||||
from ansible.plugins.netconf import NetconfBase
|
||||
from ansible.plugins.netconf import ensure_connected
|
||||
|
@ -89,7 +89,7 @@ class Netconf(NetconfBase):
|
|||
timeout=obj._play_context.timeout
|
||||
)
|
||||
except SSHUnknownHostError as exc:
|
||||
raise AnsibleConnectionFailure(str(exc))
|
||||
raise AnsibleConnectionFailure(to_native(exc))
|
||||
|
||||
guessed_os = None
|
||||
for c in m.server_capabilities:
|
||||
|
|
|
@ -969,7 +969,7 @@ class StrategyBase:
|
|||
for host in included_file._hosts:
|
||||
iterator.mark_host_failed(host)
|
||||
self._tqm._failed_hosts[host.name] = True
|
||||
display.warning(str(e))
|
||||
display.warning(to_text(e))
|
||||
continue
|
||||
|
||||
# remove hosts from notification list
|
||||
|
|
|
@ -235,7 +235,7 @@ class StrategyModule(StrategyBase):
|
|||
except AnsibleError as e:
|
||||
for host in included_file._hosts:
|
||||
iterator.mark_host_failed(host)
|
||||
display.warning(str(e))
|
||||
display.warning(to_text(e))
|
||||
continue
|
||||
|
||||
for new_block in new_blocks:
|
||||
|
|
Loading…
Reference in a new issue