summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/modules/network/vyos/fixtures/vyos_ntp_config_v14.cfg10
-rw-r--r--tests/unit/modules/network/vyos/test_vyos_ntp_global.py338
2 files changed, 346 insertions, 2 deletions
diff --git a/tests/unit/modules/network/vyos/fixtures/vyos_ntp_config_v14.cfg b/tests/unit/modules/network/vyos/fixtures/vyos_ntp_config_v14.cfg
new file mode 100644
index 0000000..8fc8ecd
--- /dev/null
+++ b/tests/unit/modules/network/vyos/fixtures/vyos_ntp_config_v14.cfg
@@ -0,0 +1,10 @@
+set service ntp allow-client address '10.1.1.0/24'
+set service ntp allow-client address '10.1.2.0/24'
+set service ntp listen-address '10.2.3.1'
+set service ntp listen-address '10.4.3.1'
+set service ntp server server1
+set service ntp server server3 noselect
+set service ntp server server3 pool
+set service ntp server time1.vyos.net
+set service ntp server time2.vyos.net
+set service ntp server time3.vyos.net
diff --git a/tests/unit/modules/network/vyos/test_vyos_ntp_global.py b/tests/unit/modules/network/vyos/test_vyos_ntp_global.py
index 6609c2f..0bf6107 100644
--- a/tests/unit/modules/network/vyos/test_vyos_ntp_global.py
+++ b/tests/unit/modules/network/vyos/test_vyos_ntp_global.py
@@ -51,11 +51,18 @@ class TestVyosNTPModule(TestVyosModule):
self.execute_show_command = self.mock_execute_show_command.start()
+ self.mock_get_os_version = patch(
+ "ansible_collections.vyos.vyos.plugins.module_utils.network.vyos.config.ntp_global.ntp_global.get_os_version",
+ )
+ self.get_os_version = self.mock_get_os_version.start()
+ self.get_os_version.return_value = "1.2"
+
def tearDown(self):
super(TestVyosNTPModule, self).tearDown()
self.mock_get_resource_connection_config.stop()
self.mock_get_resource_connection_facts.stop()
self.mock_execute_show_command.stop()
+ self.mock_get_os_version.stop()
def load_fixtures(self, commands=None, filename=None):
if filename is None:
@@ -98,7 +105,7 @@ class TestVyosNTPModule(TestVyosModule):
server="server5",
options=[
"noselect",
- "pool",
+ "dynamic",
"preempt",
"prefer",
],
@@ -116,7 +123,7 @@ class TestVyosNTPModule(TestVyosModule):
"set system ntp listen-address 10.4.5.1",
"set system ntp server server4 dynamic",
"set system ntp server server4 preempt",
- "set system ntp server server5 pool",
+ "set system ntp server server5 dynamic",
"set system ntp server server5 noselect",
"set system ntp server server5 preempt",
"set system ntp server server5 prefer",
@@ -347,3 +354,330 @@ class TestVyosNTPModule(TestVyosModule):
"delete system ntp server time3.vyos.net",
]
self.execute_module(changed=True, commands=commands)
+
+
+class TestVyosNTPModule14(TestVyosModule):
+ module = vyos_ntp_global
+
+ def setUp(self):
+ super(TestVyosNTPModule14, self).setUp()
+
+ self.mock_get_resource_connection_config = patch(
+ "ansible_collections.ansible.netcommon.plugins.module_utils.network.common.rm_base.resource_module_base.get_resource_connection",
+ )
+ self.get_resource_connection_config = self.mock_get_resource_connection_config.start()
+
+ self.mock_get_resource_connection_facts = patch(
+ "ansible_collections.ansible.netcommon.plugins.module_utils.network.common.facts.facts.get_resource_connection",
+ )
+ self.get_resource_connection_facts = self.mock_get_resource_connection_facts.start()
+
+ self.mock_execute_show_command = patch(
+ "ansible_collections.vyos.vyos.plugins.module_utils.network.vyos.facts.ntp_global.ntp_global.Ntp_globalFacts.get_config",
+ )
+
+ self.execute_show_command = self.mock_execute_show_command.start()
+
+ self.mock_get_os_version = patch(
+ "ansible_collections.vyos.vyos.plugins.module_utils.network.vyos.config.ntp_global.ntp_global.get_os_version",
+ )
+ self.get_os_version = self.mock_get_os_version.start()
+ self.get_os_version.return_value = "1.4"
+
+ def tearDown(self):
+ super(TestVyosNTPModule14, self).tearDown()
+ self.mock_get_resource_connection_config.stop()
+ self.mock_get_resource_connection_facts.stop()
+ self.mock_execute_show_command.stop()
+ self.mock_get_os_version.stop()
+
+ def load_fixtures(self, commands=None, filename=None):
+ if filename is None:
+ filename = "vyos_ntp_config_v14.cfg"
+
+ def load_from_file(*args, **kwargs):
+ output = load_fixture(filename)
+ return output
+
+ self.execute_show_command.side_effect = load_from_file
+
+ def test_ntp_merged_idempotent(self):
+ set_module_args(
+ dict(
+ config=dict(
+ allow_clients=["10.1.1.0/24", "10.1.2.0/24"],
+ listen_addresses=["10.2.3.1", "10.4.3.1"],
+ servers=[
+ dict(server="server1"),
+ dict(server="server3", options=["noselect", "pool"]),
+ dict(server="time1.vyos.net"),
+ dict(server="time2.vyos.net"),
+ dict(server="time3.vyos.net"),
+ ],
+ ),
+ state="merged",
+ ),
+ )
+ self.execute_module(changed=False, commands=[])
+
+ def test_ntp_merged(self):
+ set_module_args(
+ dict(
+ config=dict(
+ allow_clients=["10.2.2.0/24", "10.3.3.0/24"],
+ listen_addresses=["10.3.4.1", "10.4.5.1"],
+ servers=[
+ dict(server="server4", options=["pool", "preempt"]),
+ dict(
+ server="server5",
+ options=[
+ "noselect",
+ "pool",
+ "preempt",
+ "prefer",
+ ],
+ ),
+ ],
+ ),
+ state="merged",
+ ),
+ )
+
+ commands = [
+ "set service ntp allow-client address 10.2.2.0/24",
+ "set service ntp allow-client address 10.3.3.0/24",
+ "set service ntp listen-address 10.3.4.1",
+ "set service ntp listen-address 10.4.5.1",
+ "set service ntp server server4 pool",
+ "set service ntp server server4 preempt",
+ "set service ntp server server5 pool",
+ "set service ntp server server5 noselect",
+ "set service ntp server server5 preempt",
+ "set service ntp server server5 prefer",
+ ]
+
+ self.execute_module(changed=True, commands=commands)
+
+ def test_ntp_replaced(self):
+ set_module_args(
+ dict(
+ config=dict(
+ allow_clients=["10.3.4.0/24", "10.4.5.0/24"],
+ listen_addresses=["10.3.3.1", "10.4.4.1"],
+ servers=[
+ dict(server="server4", options=["noselect", "prefer"]),
+ dict(
+ server="server6",
+ options=[
+ "noselect",
+ "pool",
+ "prefer",
+ "preempt",
+ ],
+ ),
+ dict(server="time1.vyos.net"),
+ dict(server="time2.vyos.net"),
+ dict(server="time3.vyos.net"),
+ ],
+ ),
+ state="replaced",
+ ),
+ )
+ commands = [
+ "delete service ntp allow-client address 10.1.1.0/24",
+ "delete service ntp allow-client address 10.1.2.0/24",
+ "delete service ntp listen-address 10.2.3.1",
+ "delete service ntp listen-address 10.4.3.1",
+ "delete service ntp server server1",
+ "delete service ntp server server3",
+ "set service ntp allow-client address 10.3.4.0/24",
+ "set service ntp allow-client address 10.4.5.0/24",
+ "set service ntp listen-address 10.3.3.1",
+ "set service ntp listen-address 10.4.4.1",
+ "set service ntp server server4 noselect",
+ "set service ntp server server4 prefer",
+ "set service ntp server server6 noselect",
+ "set service ntp server server6 pool",
+ "set service ntp server server6 prefer",
+ "set service ntp server server6 preempt",
+ ]
+ self.execute_module(changed=True, commands=commands)
+
+ def test_ntp_replaced_idempotent(self):
+ set_module_args(
+ dict(
+ config=dict(
+ allow_clients=["10.1.1.0/24", "10.1.2.0/24"],
+ listen_addresses=["10.2.3.1", "10.4.3.1"],
+ servers=[
+ dict(server="server1"),
+ dict(server="server3", options=["noselect", "pool"]),
+ dict(server="time1.vyos.net"),
+ dict(server="time2.vyos.net"),
+ dict(server="time3.vyos.net"),
+ ],
+ ),
+ state="replaced",
+ ),
+ )
+ self.execute_module(changed=False, commands=[])
+
+ def test_ntp_overridden(self):
+ set_module_args(
+ dict(
+ config=dict(
+ allow_clients=["10.9.9.0/24"],
+ listen_addresses=["10.9.9.1"],
+ servers=[
+ dict(server="server9"),
+ dict(server="server6", options=["noselect", "pool"]),
+ dict(server="time1.vyos.net"),
+ dict(server="time2.vyos.net"),
+ dict(server="time3.vyos.net"),
+ ],
+ ),
+ state="overridden",
+ ),
+ )
+ commands = [
+ "delete service ntp allow-client address 10.1.1.0/24",
+ "delete service ntp allow-client address 10.1.2.0/24",
+ "delete service ntp listen-address 10.2.3.1",
+ "delete service ntp listen-address 10.4.3.1",
+ "delete service ntp server server1",
+ "delete service ntp server server3",
+ "set service ntp allow-client address 10.9.9.0/24",
+ "set service ntp listen-address 10.9.9.1",
+ "set service ntp server server9",
+ "set service ntp server server6 noselect",
+ "set service ntp server server6 pool",
+ ]
+ self.execute_module(changed=True, commands=commands)
+
+ def test_ntp_overridden_idempotent(self):
+ set_module_args(
+ dict(
+ config=dict(
+ allow_clients=["10.1.1.0/24", "10.1.2.0/24"],
+ listen_addresses=["10.2.3.1", "10.4.3.1"],
+ servers=[
+ dict(server="server1"),
+ dict(server="server3", options=["noselect", "pool"]),
+ dict(server="time1.vyos.net"),
+ dict(server="time2.vyos.net"),
+ dict(server="time3.vyos.net"),
+ ],
+ ),
+ state="overridden",
+ ),
+ )
+ self.execute_module(changed=False, commands=[])
+
+ def test_ntp_rendered(self):
+ set_module_args(
+ dict(
+ config=dict(
+ allow_clients=["10.7.7.0/24", "10.8.8.0/24"],
+ listen_addresses=["10.7.9.1"],
+ servers=[
+ dict(server="server79"),
+ dict(server="server46", options=["noselect", "pool"]),
+ dict(server="time1.vyos.net"),
+ dict(server="time2.vyos.net"),
+ dict(server="time3.vyos.net"),
+ ],
+ ),
+ state="rendered",
+ ),
+ )
+ rendered_commands = [
+ "set service ntp allow-client address 10.7.7.0/24",
+ "set service ntp allow-client address 10.8.8.0/24",
+ "set service ntp listen-address 10.7.9.1",
+ "set service ntp server server79",
+ "set service ntp server server46 noselect",
+ "set service ntp server server46 pool",
+ "set service ntp server time1.vyos.net",
+ "set service ntp server time2.vyos.net",
+ "set service ntp server time3.vyos.net",
+ ]
+ result = self.execute_module(changed=False)
+ self.assertEqual(
+ sorted(result["rendered"]),
+ sorted(rendered_commands),
+ result["rendered"],
+ )
+
+ def test_ntp_parsed(self):
+ commands = (
+ "set service ntp allow-client address 10.7.7.0/24",
+ "set service ntp allow-client address 10.6.7.0/24",
+ "set service ntp listen-address 10.7.9.1",
+ "set service ntp listen-address 10.7.7.1",
+ "set service ntp server check",
+ "set service ntp server server46 noselect",
+ "set service ntp server server46 prefer",
+ "set service ntp server time1.vyos.net",
+ "set service ntp server time2.vyos.net",
+ "set service ntp server time3.vyos.net",
+ )
+ parsed_str = "\n".join(commands)
+ set_module_args(dict(running_config=parsed_str, state="parsed"))
+ result = self.execute_module(changed=False)
+ parsed_list = {
+ "allow_clients": ["10.6.7.0/24", "10.7.7.0/24"],
+ "listen_addresses": ["10.7.7.1", "10.7.9.1"],
+ "servers": [
+ {"server": "check"},
+ {"server": "server46", "options": ["noselect", "prefer"]},
+ {"server": "time1.vyos.net"},
+ {"server": "time2.vyos.net"},
+ {"server": "time3.vyos.net"},
+ ],
+ }
+ self.assertEqual(parsed_list, result["parsed"])
+
+ def test_ntp_gathered(self):
+ set_module_args(dict(state="gathered"))
+ result = self.execute_module(changed=False)
+ gathered_list = {
+ "allow_clients": ["10.1.1.0/24", "10.1.2.0/24"],
+ "listen_addresses": ["10.2.3.1", "10.4.3.1"],
+ "servers": [
+ {"server": "server1"},
+ {"server": "server3", "options": ["noselect", "pool"]},
+ {"server": "time1.vyos.net"},
+ {"server": "time2.vyos.net"},
+ {"server": "time3.vyos.net"},
+ ],
+ }
+
+ self.assertEqual(gathered_list, result["gathered"])
+
+ def test_ntp_deleted(self):
+ set_module_args(
+ dict(
+ config=dict(
+ allow_clients=["10.1.1.0/24"],
+ listen_addresses=["10.2.3.1"],
+ servers=[
+ dict(server="server1"),
+ dict(server="server3", options=["noselect"]),
+ dict(server="time1.vyos.net"),
+ dict(server="time2.vyos.net"),
+ dict(server="time3.vyos.net"),
+ ],
+ ),
+ state="deleted",
+ ),
+ )
+ commands = [
+ "delete service ntp allow-client",
+ "delete service ntp listen-address",
+ "delete service ntp server server1",
+ "delete service ntp server server3",
+ "delete service ntp server time1.vyos.net",
+ "delete service ntp server time2.vyos.net",
+ "delete service ntp server time3.vyos.net",
+ ]
+ self.execute_module(changed=True, commands=commands)