diff --git a/lib/ansible/module_utils/network/vyos/vyos.py b/lib/ansible/module_utils/network/vyos/vyos.py index a545378db8..660156da69 100644 --- a/lib/ansible/module_utils/network/vyos/vyos.py +++ b/lib/ansible/module_utils/network/vyos/vyos.py @@ -29,7 +29,7 @@ import json from ansible.module_utils._text import to_text from ansible.module_utils.basic import env_fallback, return_values from ansible.module_utils.network.common.utils import to_list -from ansible.module_utils.connection import Connection +from ansible.module_utils.connection import Connection, ConnectionError _DEVICE_CONFIGS = {} @@ -143,14 +143,13 @@ def load_config(module, commands, commit=False, comment=None): if commit: try: out = connection.commit(comment) - except: + except ConnectionError: connection.discard_changes() module.fail_json(msg='commit failed: %s' % out) - - if not commit: - connection.discard_changes() + else: + connection.get('exit') else: - connection.get('exit') + connection.discard_changes() if diff: return diff diff --git a/lib/ansible/plugins/cliconf/vyos.py b/lib/ansible/plugins/cliconf/vyos.py index 57b60b3761..d341a2bd35 100644 --- a/lib/ansible/plugins/cliconf/vyos.py +++ b/lib/ansible/plugins/cliconf/vyos.py @@ -26,7 +26,7 @@ from itertools import chain from ansible.module_utils._text import to_bytes, to_text from ansible.module_utils.network.common.utils import to_list -from ansible.plugins.cliconf import CliconfBase, enable_mode +from ansible.plugins.cliconf import CliconfBase class Cliconf(CliconfBase): @@ -69,7 +69,7 @@ class Cliconf(CliconfBase): self.send_command(to_bytes(command)) def discard_changes(self, *args, **kwargs): - self.send_command(b'discard') + self.send_command(b'exit discard') def get_capabilities(self): result = {} diff --git a/test/integration/targets/vyos_smoke/tests/cli/misc_tests.yaml b/test/integration/targets/vyos_smoke/tests/cli/misc_tests.yaml index 312fa41c24..a56d057cca 100644 --- a/test/integration/targets/vyos_smoke/tests/cli/misc_tests.yaml +++ b/test/integration/targets/vyos_smoke/tests/cli/misc_tests.yaml @@ -1,13 +1,13 @@ # hit check conditional in module_utils.network.vyos -> load_config() -# - name: configure simple config command -# vyos_config: -# lines: set system host-name check-test -# check_mode: yes -# -# - name: get host name -# vyos_command: -# commands: show host name -# register: result -# -# - assert: -# that: '"check-test" not in result.stdout' +- name: configure simple config command + vyos_config: + lines: set system host-name check-test + check_mode: yes + +- name: get host name + vyos_command: + commands: show host name + register: result + +- assert: + that: '"check-test" not in result.stdout'