summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorlucaelin <git@luca.lsys.ac>2026-02-23 13:25:35 +0100
committerGitHub <noreply@github.com>2026-02-23 12:25:35 +0000
commite539028c2f9d062e7684abda5dd32affd92e9f08 (patch)
tree26bdccd9ae304c9d4eef843e60eb61f7ad54e3df /tests
parent8d96e7a700d30667c594ab7880538451f60d7fb4 (diff)
downloadvyos.vyos-e539028c2f9d062e7684abda5dd32affd92e9f08.tar.gz
vyos.vyos-e539028c2f9d062e7684abda5dd32affd92e9f08.zip
add commit-confirm options to vyos_config (#229)
* added vyos_config confirm options * fix: update commit comment to match main * fix: documentation example for automatic confirm * fix: add tests for commit confirm and confirm_timeout options * fix: add config_confirm changelog fragment * fix: lint missing diff parameter for edit_config * fix: add commit confirm integration test --------- Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/targets/vyos_config/tests/cli/confirm.yaml44
-rw-r--r--tests/unit/modules/network/vyos/test_vyos_config.py38
2 files changed, 82 insertions, 0 deletions
diff --git a/tests/integration/targets/vyos_config/tests/cli/confirm.yaml b/tests/integration/targets/vyos_config/tests/cli/confirm.yaml
new file mode 100644
index 00000000..73674a17
--- /dev/null
+++ b/tests/integration/targets/vyos_config/tests/cli/confirm.yaml
@@ -0,0 +1,44 @@
+---
+- debug: msg="START cli/confirm.yaml on connection={{ ansible_connection }}"
+
+- name: setup
+ vyos.vyos.vyos_config:
+ lines: set system host-name {{ inventory_hostname_short }}
+ match: none
+
+- name: configure with confirm (manual)
+ register: result
+ vyos.vyos.vyos_config:
+ lines: set system host-name foo
+ comment: confirm manual test
+ confirm: manual
+ confirm_timeout: 1
+
+- assert:
+ that:
+ - result.changed == true
+ - "'set system host-name foo' in result.commands"
+
+- name: verify hostname changed to foo
+ register: hostname_after
+ vyos.vyos.vyos_command:
+ commands: show host name
+
+- assert:
+ that:
+ - "'foo' in hostname_after.stdout[0]"
+
+- name: wait until config auto-reverts (no confirmation)
+ register: hostname_reverted
+ vyos.vyos.vyos_command:
+ commands: show host name
+ retries: 18
+ delay: 5
+ until: inventory_hostname_short in hostname_reverted.stdout[0]
+
+- name: teardown
+ vyos.vyos.vyos_config:
+ lines: set system host-name {{ inventory_hostname_short }}
+ match: none
+
+- debug: msg="END cli/confirm.yaml on connection={{ ansible_connection }}"
diff --git a/tests/unit/modules/network/vyos/test_vyos_config.py b/tests/unit/modules/network/vyos/test_vyos_config.py
index 4f1cac6a..601971cd 100644
--- a/tests/unit/modules/network/vyos/test_vyos_config.py
+++ b/tests/unit/modules/network/vyos/test_vyos_config.py
@@ -140,3 +140,41 @@ class TestVyosConfigModule(TestVyosModule):
return_value=self.cliconf_obj.get_diff(candidate, None, diff_match="none"),
)
self.execute_module(changed=True, commands=lines, sort=False)
+
+ def test_vyos_config_confirm_automatic(self):
+ src = load_fixture("vyos_config_src.cfg")
+ confirm_timeout = 7
+ set_module_args(dict(src=src, confirm="automatic", confirm_timeout=confirm_timeout))
+ candidate = "\n".join(self.module.format_commands(src.splitlines()))
+ commands = [
+ "set system host-name foo",
+ "delete interfaces ethernet eth0 address",
+ ]
+ self.conn.get_diff = MagicMock(
+ return_value=self.cliconf_obj.get_diff(candidate, self.running_config),
+ )
+
+ self.execute_module(changed=True, commands=commands)
+
+ self.assertEqual(self.load_config.call_args[1]["confirm"], confirm_timeout)
+ self.run_commands.assert_called_once()
+ self.assertEqual(
+ ["configure", "confirm", "exit"],
+ self.run_commands.call_args[0][1],
+ )
+
+ def test_vyos_config_confirm_manual(self):
+ lines = [
+ "set system host-name foo",
+ ]
+ confirm_timeout = 12
+ set_module_args(dict(lines=lines, confirm="manual", confirm_timeout=confirm_timeout))
+ candidate = "\n".join(lines)
+ self.conn.get_diff = MagicMock(
+ return_value=self.cliconf_obj.get_diff(candidate, self.running_config),
+ )
+
+ self.execute_module(changed=True, commands=lines)
+
+ self.assertEqual(self.load_config.call_args[1]["confirm"], confirm_timeout)
+ self.run_commands.assert_not_called()