From bffa355c6cb463297ccdadcf30a0cd039e9a2094 Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Fri, 19 May 2017 22:26:55 +0530 Subject: [PATCH] Include error exception in AnsibleError - Use to_native instead of str Signed-off-by: Abhijeet Kasurde (cherry picked from commit f9b836a9010b760e7076bf1b78089e994d0372ce) --- lib/ansible/plugins/connection/paramiko_ssh.py | 4 ++-- lib/ansible/plugins/connection/zone.py | 2 +- lib/ansible/plugins/lookup/dig.py | 12 +++++++++--- lib/ansible/plugins/lookup/dnstxt.py | 3 ++- lib/ansible/plugins/lookup/sequence.py | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/ansible/plugins/connection/paramiko_ssh.py b/lib/ansible/plugins/connection/paramiko_ssh.py index c2e9355d71e..fdc066bb9fc 100644 --- a/lib/ansible/plugins/connection/paramiko_ssh.py +++ b/lib/ansible/plugins/connection/paramiko_ssh.py @@ -44,7 +44,7 @@ from ansible.compat.six.moves import input from ansible.errors import AnsibleError, AnsibleConnectionFailure, AnsibleFileNotFound from ansible.plugins.connection import ConnectionBase from ansible.utils.path import makedirs_safe -from ansible.module_utils._text import to_bytes +from ansible.module_utils._text import to_bytes, to_native try: from __main__ import display @@ -376,7 +376,7 @@ class Connection(ConnectionBase): try: self.sftp = self._connect_sftp() except Exception as e: - raise AnsibleError("failed to open a SFTP connection (%s)", e) + raise AnsibleError("failed to open a SFTP connection (%s)" % to_native(e)) try: self.sftp.get(to_bytes(in_path, errors='surrogate_or_strict'), to_bytes(out_path, errors='surrogate_or_strict')) diff --git a/lib/ansible/plugins/connection/zone.py b/lib/ansible/plugins/connection/zone.py index b52ad410221..104e4c6b3aa 100644 --- a/lib/ansible/plugins/connection/zone.py +++ b/lib/ansible/plugins/connection/zone.py @@ -66,7 +66,7 @@ class Connection(ConnectionBase): def _search_executable(executable): cmd = distutils.spawn.find_executable(executable) if not cmd: - raise AnsibleError("%s command not found in PATH") % executable + raise AnsibleError("%s command not found in PATH" % executable) return cmd def list_zones(self): diff --git a/lib/ansible/plugins/lookup/dig.py b/lib/ansible/plugins/lookup/dig.py index 252739afe5d..ae82bf7f71a 100644 --- a/lib/ansible/plugins/lookup/dig.py +++ b/lib/ansible/plugins/lookup/dig.py @@ -19,6 +19,7 @@ __metaclass__ = type from ansible.errors import AnsibleError from ansible.plugins.lookup import LookupBase +from ansible.module_utils._text import to_native import socket try: @@ -143,7 +144,7 @@ class LookupModule(LookupBase): nsaddr = dns.resolver.query(ns)[0].address nameservers.append(nsaddr) except Exception as e: - raise AnsibleError("dns lookup NS: ", str(e)) + raise AnsibleError("dns lookup NS: %s" % to_native(e)) myres.nameservers = nameservers continue if '=' in t: @@ -156,6 +157,11 @@ class LookupModule(LookupBase): qtype = arg.upper() elif opt == 'flat': flat = int(arg) + elif opt == 'class': + try: + rdclass = dns.rdataclass.from_text(arg) + except Exception as e: + raise AnsibleError("dns lookup illegal CLASS: %s" % to_native(e)) continue @@ -178,7 +184,7 @@ class LookupModule(LookupBase): except dns.exception.SyntaxError: pass except Exception as e: - raise AnsibleError("dns.reversename unhandled exception", str(e)) + raise AnsibleError("dns.reversename unhandled exception %s" % to_native(e)) try: answers = myres.query(domain, qtype) @@ -207,6 +213,6 @@ class LookupModule(LookupBase): except dns.resolver.Timeout: ret.append('') except dns.exception.DNSException as e: - raise AnsibleError("dns.resolver unhandled exception", e) + raise AnsibleError("dns.resolver unhandled exception %s" % to_native(e)) return ret diff --git a/lib/ansible/plugins/lookup/dnstxt.py b/lib/ansible/plugins/lookup/dnstxt.py index 6069377f4c3..be0068e8dd6 100644 --- a/lib/ansible/plugins/lookup/dnstxt.py +++ b/lib/ansible/plugins/lookup/dnstxt.py @@ -27,6 +27,7 @@ except ImportError: from ansible.errors import AnsibleError from ansible.plugins.lookup import LookupBase +from ansible.module_utils._text import to_native # ============================================================== # DNSTXT: DNS TXT records @@ -57,7 +58,7 @@ class LookupModule(LookupBase): except dns.resolver.Timeout: string = '' except DNSException as e: - raise AnsibleError("dns.resolver unhandled exception", e) + raise AnsibleError("dns.resolver unhandled exception %s" % to_native(e)) ret.append(''.join(string)) diff --git a/lib/ansible/plugins/lookup/sequence.py b/lib/ansible/plugins/lookup/sequence.py index 9efa12b0d56..3480b4f1d05 100644 --- a/lib/ansible/plugins/lookup/sequence.py +++ b/lib/ansible/plugins/lookup/sequence.py @@ -175,7 +175,7 @@ class LookupModule(LookupBase): yield formatted except (ValueError, TypeError): raise AnsibleError( - "problem formatting %r with %r" % self.format + "problem formatting %r with %r" % (i, self.format) ) def run(self, terms, variables, **kwargs):