diff --git a/lib/ansible/module_utils/network/eos/eos.py b/lib/ansible/module_utils/network/eos/eos.py index 22bf86f6ee..76903ab0ca 100644 --- a/lib/ansible/module_utils/network/eos/eos.py +++ b/lib/ansible/module_utils/network/eos/eos.py @@ -440,7 +440,11 @@ class Eapi: commands = ['configure session %s' % session, 'abort'] self.send_request(commands) err = response['error'] - self._module.fail_json(msg=err['message'], code=err['code']) + error_text = [] + for data in err['data']: + error_text.extend(data.get('errors', [])) + error_text = '\n'.join(error_text) or err['message'] + self._module.fail_json(msg=error_text, code=err['code']) commands = ['configure session %s' % session, 'show session-config diffs'] if commit: diff --git a/lib/ansible/plugins/terminal/eos.py b/lib/ansible/plugins/terminal/eos.py index 3eb3c15b03..5f6d48dff8 100644 --- a/lib/ansible/plugins/terminal/eos.py +++ b/lib/ansible/plugins/terminal/eos.py @@ -45,7 +45,8 @@ class TerminalModule(TerminalBase): re.compile(br"[^\r\n]+ not found", re.I), re.compile(br"'[^']' +returned error code: ?\d+"), re.compile(br"[^\r\n]\/bin\/(?:ba)?sh"), - re.compile(br"% More than \d+ OSPF instance", re.I) + re.compile(br"% More than \d+ OSPF instance", re.I), + re.compile(br"% Subnet [0-9a-f.:/]+ overlaps", re.I), ] def on_open_shell(self):