From c04d0ebc2375fb2ac378d03c09c6cac7c283f81e Mon Sep 17 00:00:00 2001 From: Nathaniel Case Date: Thu, 24 May 2018 09:43:59 -0400 Subject: [PATCH] Connection-side, the expection is AnsibleConnectionFailure (#40658) --- lib/ansible/plugins/cliconf/eos.py | 11 ++++++++--- lib/ansible/plugins/cliconf/nxos.py | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/ansible/plugins/cliconf/eos.py b/lib/ansible/plugins/cliconf/eos.py index d6a1efd1d6c..22239cac5c2 100644 --- a/lib/ansible/plugins/cliconf/eos.py +++ b/lib/ansible/plugins/cliconf/eos.py @@ -24,8 +24,8 @@ import time from itertools import chain +from ansible.errors import AnsibleConnectionFailure from ansible.module_utils._text import to_bytes -from ansible.module_utils.connection import ConnectionError from ansible.module_utils.network.common.utils import to_list from ansible.plugins.cliconf import CliconfBase, enable_mode from ansible.plugins.connection.network_cli import Connection as NetworkCli @@ -128,7 +128,12 @@ class Cliconf(CliconfBase): elif command == 'EOF' and multiline: multiline = False - out = self.get(command, prompt, answer, multiline) + try: + out = self.get(command, prompt, answer, multiline) + except AnsibleConnectionFailure as e: + if check_rc: + raise + out = getattr(e, 'err', e) if out is not None: try: @@ -152,7 +157,7 @@ class Cliconf(CliconfBase): try: self.run_commands(commands) - except ConnectionError: + except AnsibleConnectionFailure: self.close_session(session) raise diff --git a/lib/ansible/plugins/cliconf/nxos.py b/lib/ansible/plugins/cliconf/nxos.py index 6fd75a706cf..01e492717e0 100644 --- a/lib/ansible/plugins/cliconf/nxos.py +++ b/lib/ansible/plugins/cliconf/nxos.py @@ -23,8 +23,8 @@ import json from itertools import chain +from ansible.errors import AnsibleConnectionFailure from ansible.module_utils._text import to_bytes, to_text -from ansible.module_utils.connection import ConnectionError from ansible.module_utils.network.common.utils import to_list from ansible.plugins.cliconf import CliconfBase from ansible.plugins.connection.network_cli import Connection as NetworkCli @@ -115,10 +115,10 @@ class Cliconf(CliconfBase): try: out = self.get(cmd) - except ConnectionError as e: + except AnsibleConnectionFailure as e: if check_rc: raise - out = e + out = getattr(e, 'err', e) try: out = to_text(out, errors='surrogate_or_strict').strip()