Fix VyOS check mode (#35977)

* Revert "commented out check tests (#35788)"

This reverts commit 3df2561405.

* `discard_changes()` now uses `exit discard`

instead of just `discard`. Also a slight tweak to avoid a second `exit` after
`exit discard`
pull/36016/head
Nathaniel Case 7 years ago committed by GitHub
parent d5ae63c0ea
commit 6cdf91fd35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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

@ -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 = {}

@ -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'

Loading…
Cancel
Save