diff options
author | Gaige B Paulsen <gaige@cluetrust.com> | 2024-12-17 05:26:06 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-17 05:26:06 -0500 |
commit | 001ed7481a23874f931e4bfb681e88506a5e6a0d (patch) | |
tree | 23a36ad50af20ced426c33a4a5fe14fe35ee2d58 /tests | |
parent | bf38875af0a7e5166ce0330f16441b7d8b434e6a (diff) | |
download | vyos.vyos-001ed7481a23874f931e4bfb681e88506a5e6a0d.tar.gz vyos.vyos-001ed7481a23874f931e4bfb681e88506a5e6a0d.zip |
T6894: Fix failing NTP network-integration Tests (#366)
* tests: ntp: parsed
* tests: ntp tests working with 1.3
* T6894 : test: update 1.4 tests for compatibility
* fix: path replacement, docs, unit tests for 1.3-1.5
* T6894: fix: 1.4+ requires valid hostnames
* fix: update tests to handle deletion
* T6894: separate changelog
* fix: final test fixes
Diffstat (limited to 'tests')
15 files changed, 397 insertions, 189 deletions
diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/_get_version.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/_get_version.yaml new file mode 100644 index 0000000..2588b19 --- /dev/null +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/_get_version.yaml @@ -0,0 +1,28 @@ +- name: make sure to get facts + vyos.vyos.vyos_facts: + vars: + ansible_connection: ansible.netcommon.network_cli + register: vyos_facts + when: vyos_version is not defined + +- name: debug vyos_facts + debug: + var: vyos_facts + +- name: pull version from facts + set_fact: + vyos_version: "{{ vyos_facts.ansible_facts.ansible_net_version.split('-')[0].split(' ')[-1] }}" + when: vyos_version is not defined + +- name: fix '.0' versions + set_fact: + vyos_version: "{{ vyos_version }}.0" + when: vyos_version.count('.') == 1 + +- name: include correct vars + include_vars: pre-v1_4.yaml + when: vyos_version is version('1.4.0', '<', version_type='semver') + +- name: include correct vars + include_vars: v1_4.yaml + when: vyos_version is version('1.4.0', '>=', version_type='semver') diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/_parsed.cfg b/tests/integration/targets/vyos_ntp_global/tests/cli/_parsed.cfg deleted file mode 100644 index 0608aef..0000000 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/_parsed.cfg +++ /dev/null @@ -1,5 +0,0 @@ -set system ntp server 10.3.6.5 noselect -set system ntp server 10.3.6.5 dynamic -set system ntp server 0.pool.ntp.org -set system ntp server 1.pool.ntp.org -set system ntp server 2.pool.ntp.org diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/_populate_config.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/_populate_config.yaml index 035fcba..cf47bc1 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/_populate_config.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/_populate_config.yaml @@ -1,13 +1,30 @@ --- -- name: setup +- name: ensure facts + include_tasks: _get_version.yaml + +- name: setup before 1.4 vyos.vyos.vyos_config: lines: - - set system ntp server server4 dynamic - - set system ntp server server5 preempt + - set system ntp server server4.example.com pool + - set system ntp server server5.example.com preempt - set system ntp server 10.3.6.5 noselect - set system ntp server 10.3.6.5 preempt - - set system ntp server server4 noselect + - set system ntp server server4.example.com noselect - set system ntp server 10.3.6.5 prefer ignore_errors: true vars: ansible_connection: ansible.netcommon.network_cli + when: vyos_version is version('1.4.0', '<', version_type='semver') +- name: setup 1.4+ + vyos.vyos.vyos_config: + lines: + - set service ntp server server4.example.com pool + - set service ntp server server5.example.com nts + - set service ntp server 10.3.6.5 noselect + - set service ntp server 10.3.6.5 nts + - set service ntp server server4.example.com noselect + - set service ntp server 10.3.6.5 prefer + ignore_errors: true + vars: + ansible_connection: ansible.netcommon.network_cli + when: vyos_version is version('1.4.0', '>=', version_type='semver') diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/_remove_config.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/_remove_config.yaml index 6017bdb..dce60d3 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/_remove_config.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/_remove_config.yaml @@ -1,4 +1,7 @@ --- +- name: ensure facts + include_tasks: _get_version.yaml + - name: Remove pre-existing ntp_global config vyos.vyos.vyos_ntp_global: config: diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/deleted.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/deleted.yaml index de5cbae..3077bd8 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/deleted.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/deleted.yaml @@ -22,7 +22,7 @@ - name: Assert that the after dicts were correctly generated assert: that: - - result.after == populate.config + - result.after == {} - name: Delete the existing configuration with the provided running configuration (IDEMPOTENT) register: result diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/merged.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/merged.yaml index 4d2994d..c62a500 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/merged.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/merged.yaml @@ -8,21 +8,7 @@ - name: Merge the provided configuration with the existing running configuration register: result vyos.vyos.vyos_ntp_global: &id001 - config: - servers: - - server: server5 - - - server: server4 - options: - - noselect - - dynamic - - - server: 10.3.6.5 - options: - - noselect - - preempt - - dynamic - - prefer + config: "{{ merged.config }}" state: merged - vyos.vyos.vyos_facts: @@ -39,7 +25,7 @@ - name: Assert that before dicts were correctly generated assert: that: - - result.before == populate.config + - result.before == {} - name: Merge the provided configuration with the existing running configuration (IDEMPOTENT) register: result @@ -49,6 +35,8 @@ assert: that: - result['changed'] == false + - result['commands'] == [] + - result['before'] == ansible_facts['network_resources']['ntp_global'] always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/overridden.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/overridden.yaml index 1b8d415..0911869 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/overridden.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/overridden.yaml @@ -12,25 +12,36 @@ vyos.vyos.vyos_ntp_global: &id001 config: servers: - - server: server1 + - server: server1.example.com options: - - dynamic + - pool - prefer - - server: server2 + - server: server2.example.com options: - noselect - - preempt + - prefer - - server: server_add + - server: server-add.example.com options: - - preempt + - prefer state: overridden - vyos.vyos.vyos_facts: gather_network_resources: ntp_global - - assert: + - name: debug result.after and overridden.after + debug: + msg: "{{ result.after }} != {{ overridden.after }}" + when: result.after != overridden.after + + - name: debug ansible_facts['network_resources']['ntp_global'] + debug: + msg: "{{ ansible_facts['network_resources']['ntp_global'] }}" + when: result.after != ansible_facts['network_resources']['ntp_global'] + + - name: Verify that the configuration was correctly overridden + assert: that: - result.changed == true - result.after == ansible_facts['network_resources']['ntp_global'] diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/parsed.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/parsed.yaml index daf20f9..725384a 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/parsed.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/parsed.yaml @@ -2,10 +2,13 @@ - debug: msg: START vyos_ntp_global parsed integration tests on connection={{ ansible_connection }} +- name: ensure version + include_tasks: _get_version.yaml + - name: Provide the running configuration for parsing (config to be parsed) register: result vyos.vyos.vyos_ntp_global: - running_config: "{{ lookup('file', '_parsed.cfg') }}" + running_config: "{{ parsed.config }}" state: parsed - name: Assert that config was correctly parsed diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/rendered.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/rendered.yaml index 29ed3ad..e5de57e 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/rendered.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/rendered.yaml @@ -8,21 +8,7 @@ - name: Structure provided configuration into device specific commands register: result vyos.vyos.vyos_ntp_global: - config: - servers: - - server: server5 - - - server: server4 - options: - - noselect - - dynamic - - - server: 10.3.6.5 - options: - - noselect - - preempt - - dynamic - - prefer + config: "{{ merged.config }}" state: rendered - assert: diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/replaced.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/replaced.yaml index 3942a34..a78d7f5 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/replaced.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/replaced.yaml @@ -12,7 +12,7 @@ vyos.vyos.vyos_ntp_global: &id001 config: servers: - - server: server_new + - server: server-new.example.com options: - prefer state: replaced diff --git a/tests/integration/targets/vyos_ntp_global/tests/cli/rtt.yaml b/tests/integration/targets/vyos_ntp_global/tests/cli/rtt.yaml index 6137c21..92d6cb3 100644 --- a/tests/integration/targets/vyos_ntp_global/tests/cli/rtt.yaml +++ b/tests/integration/targets/vyos_ntp_global/tests/cli/rtt.yaml @@ -5,29 +5,10 @@ - include_tasks: _remove_config.yaml - block: - - name: Merge the provided configuration with the existing running configuration + - name: RTT Merge the provided configuration with the existing running configuration register: baseconfig vyos.vyos.vyos_ntp_global: - config: - servers: - - server: 10.3.6.5 - options: - - noselect - - dynamic - - preempt - - prefer - - - server: server4 - options: - - noselect - - dynamic - - - server: 0.pool.ntp.org - - - server: 1.pool.ntp.org - - - server: 2.pool.ntp.org - + config: "{{ rtt.config }}" state: merged - vyos.vyos.vyos_facts: @@ -35,33 +16,32 @@ - assert: that: - - baseconfig.commands|length == 6 + - (baseconfig.commands|length) == (rtt.commands|length) - baseconfig.changed == true - baseconfig.commands|symmetric_difference(rtt.commands) == [] - baseconfig.after == ansible_facts['network_resources']['ntp_global'] - - name: Merge the existing configuration with the provided running configuration + - name: RTT Merge the existing configuration with the provided running configuration register: result vyos.vyos.vyos_ntp_global: config: servers: - server: server1 options: - - dynamic + - pool - prefer - server: server2 options: - noselect - - preempt - - name: Revert back to base config using facts round trip + - name: RTT Revert back to base config using facts round trip register: revert vyos.vyos.vyos_ntp_global: config: "{{ ansible_facts['network_resources']['ntp_global'] }}" state: overridden - - name: Assert that config was reverted + - name: RTT Assert that config was reverted assert: that: baseconfig.after == revert.after diff --git a/tests/integration/targets/vyos_ntp_global/vars/main.yaml b/tests/integration/targets/vyos_ntp_global/vars/main.yaml index 6cd65ce..4303881 100644 --- a/tests/integration/targets/vyos_ntp_global/vars/main.yaml +++ b/tests/integration/targets/vyos_ntp_global/vars/main.yaml @@ -1,107 +1,2 @@ --- -rtt: - commands: - - set system ntp server server4 dynamic - - set system ntp server 10.3.6.5 noselect - - set system ntp server 10.3.6.5 dynamic - - set system ntp server 10.3.6.5 preempt - - set system ntp server server4 noselect - - set system ntp server 10.3.6.5 prefer - -merged: - commands: - - set system ntp server server5 - - set system ntp server server4 dynamic - - set system ntp server 10.3.6.5 noselect - - set system ntp server 10.3.6.5 dynamic - - set system ntp server 10.3.6.5 preempt - - set system ntp server server4 noselect - - set system ntp server 10.3.6.5 prefer - - after: - servers: - - server: 0.pool.ntp.org - - server: 1.pool.ntp.org - - server: 10.3.6.5 - options: - - dynamic - - noselect - - preempt - - prefer - - server: 2.pool.ntp.org - - - server: server4 - options: - - dynamic - - noselect - - - server: server5 - -replaced: - commands: - - delete system ntp server 10.3.6.5 - - delete system ntp server server4 - - delete system ntp server server5 - - set system ntp server server_new prefer - - after: - servers: - - server: 0.pool.ntp.org - - server: 1.pool.ntp.org - - server: 2.pool.ntp.org - - options: - - prefer - server: server_new - -overridden: - commands: - - delete system ntp server server_new - - set system ntp server server1 dynamic - - set system ntp server server1 prefer - - set system ntp server server2 noselect - - set system ntp server server2 preempt - - set system ntp server server_add preempt - - after: - servers: - - server: 0.pool.ntp.org - - server: 1.pool.ntp.org - - server: 2.pool.ntp.org - - server: server1 - options: - - dynamic - - prefer - - - server: server2 - options: - - noselect - - preempt - - server: server_add - options: - - preempt - -deleted: - commands: - - delete system ntp server 10.3.6.5 - - delete system ntp server server4 - - delete system ntp server server5 - -parsed: - after: - servers: - - server: 0.pool.ntp.org - - - server: 1.pool.ntp.org - - server: 10.3.6.5 - options: - - dynamic - - noselect - - server: 2.pool.ntp.org - -populate: - config: - servers: - - server: 0.pool.ntp.org - - - server: 1.pool.ntp.org - - server: 2.pool.ntp.org +# only common vars here diff --git a/tests/integration/targets/vyos_ntp_global/vars/pre-v1_4.yaml b/tests/integration/targets/vyos_ntp_global/vars/pre-v1_4.yaml new file mode 100644 index 0000000..c82d85d --- /dev/null +++ b/tests/integration/targets/vyos_ntp_global/vars/pre-v1_4.yaml @@ -0,0 +1,139 @@ +--- +rtt: + config: + servers: + - server: 10.3.6.5 + options: + - noselect + - pool + - preempt + - prefer + + - server: server4.example.com + options: + - noselect + - pool + + commands: + - set system ntp server server4.example.com pool + - set system ntp server 10.3.6.5 noselect + - set system ntp server 10.3.6.5 pool + - set system ntp server 10.3.6.5 preempt + - set system ntp server server4.example.com noselect + - set system ntp server 10.3.6.5 prefer + +merged: + config: + servers: + - server: server5.example.com + - server: server4.example.com + options: + - noselect + - pool + - server: 10.3.6.5 + options: + - noselect + - preempt + - pool + - prefer + + commands: + - set system ntp server server5.example.com + - set system ntp server server4.example.com pool + - set system ntp server 10.3.6.5 noselect + - set system ntp server 10.3.6.5 pool + - set system ntp server 10.3.6.5 preempt + - set system ntp server server4.example.com noselect + - set system ntp server 10.3.6.5 prefer + + after: + servers: + - server: 10.3.6.5 + options: + - noselect + - pool + - preempt + - prefer + - server: server4.example.com + options: + - noselect + - pool + + - server: server5.example.com + +replaced: + commands: + - delete system ntp server 10.3.6.5 + - delete system ntp server server4.example.com + - delete system ntp server server5.example.com + - set system ntp server server-new.example.com prefer + + after: + servers: + - options: + - prefer + server: server-new.example.com + +overridden: + commands: + - delete system ntp server server-new.example.com + - set system ntp server server1.example.com pool + - set system ntp server server1.example.com prefer + - set system ntp server server2.example.com noselect + - set system ntp server server2.example.com prefer + - set system ntp server server-add.example.com prefer + + after: + servers: + - server: server-add.example.com + options: + - prefer + - server: server1.example.com + options: + - pool + - prefer + - server: server2.example.com + options: + - noselect + - prefer + +deleted: + commands: + - delete system ntp server 10.3.6.5 + - delete system ntp server server4.example.com + - delete system ntp server server5.example.com + - delete system ntp + +parsed: + config: | + set system ntp server 10.3.6.5 noselect + set system ntp server 10.3.6.5 pool + set system ntp server 0.pool.ntp.org + set system ntp server 1.pool.ntp.org + set system ntp server 2.pool.ntp.org + after: + servers: + - server: 0.pool.ntp.org + + - server: 1.pool.ntp.org + - server: 10.3.6.5 + options: + - noselect + - pool + - server: 2.pool.ntp.org + +populate: + config: + servers: + - server: server5.example.com + options: + - preempt + - server: server4.example.com + options: + - noselect + - pool + - server: 10.3.6.5 + options: + - noselect + - preempt + - prefer diff --git a/tests/integration/targets/vyos_ntp_global/vars/v1_4.yaml b/tests/integration/targets/vyos_ntp_global/vars/v1_4.yaml new file mode 100644 index 0000000..2a655bf --- /dev/null +++ b/tests/integration/targets/vyos_ntp_global/vars/v1_4.yaml @@ -0,0 +1,141 @@ +--- +rtt: + config: + servers: + - server: 10.3.6.5 + options: + - noselect + - nts + - pool + - prefer + + - server: server4.example.com + options: + - noselect + - pool + + commands: + - set service ntp server server4.example.com pool + - set service ntp server 10.3.6.5 noselect + - set service ntp server 10.3.6.5 nts + - set service ntp server 10.3.6.5 pool + - set service ntp server server4.example.com noselect + - set service ntp server 10.3.6.5 prefer + +merged: + config: + servers: + - server: server5.example.com + - server: server4.example.com + options: + - noselect + - pool + - server: 10.3.6.5 + options: + - noselect + - nts + - pool + - prefer + + commands: + - set service ntp server server5.example.com + - set service ntp server server4.example.com pool + - set service ntp server 10.3.6.5 noselect + - set service ntp server 10.3.6.5 nts + - set service ntp server 10.3.6.5 pool + - set service ntp server server4.example.com noselect + - set service ntp server 10.3.6.5 prefer + + after: + servers: + - server: 10.3.6.5 + options: + - noselect + - nts + - pool + - prefer + + - server: server4.example.com + options: + - noselect + - pool + + - server: server5.example.com + +replaced: + commands: + - delete service ntp server 10.3.6.5 + - delete service ntp server server4.example.com + - delete service ntp server server5.example.com + - set service ntp server server-new.example.com prefer + + after: + servers: + - options: + - prefer + server: server-new.example.com + +overridden: + commands: + - delete service ntp server server-new.example.com + - set service ntp server server1.example.com pool + - set service ntp server server1.example.com prefer + - set service ntp server server2.example.com noselect + - set service ntp server server2.example.com prefer + - set service ntp server server-add.example.com prefer + + after: + servers: + - server: server-add.example.com + options: + - prefer + + - server: server1.example.com + options: + - pool + - prefer + + - server: server2.example.com + options: + - noselect + - prefer + +deleted: + commands: + - delete service ntp server 10.3.6.5 + - delete service ntp server server4.example.com + - delete service ntp server server5.example.com + - delete service ntp + +parsed: + config: | + set service ntp server 10.3.6.5 noselect + set service ntp server 10.3.6.5 pool + set service ntp server 0.pool.ntp.org + set service ntp server 1.pool.ntp.org + set service ntp server 2.pool.ntp.org + after: + servers: + - server: 0.pool.ntp.org + - server: 1.pool.ntp.org + - server: 10.3.6.5 + options: + - noselect + - pool + - server: 2.pool.ntp.org + +populate: + config: + servers: + - server: server4.example.com + options: + - prefer + - server: server4.example.com + options: + - noselect + - pool + - server: 10.3.6.5 + options: + - noselect + - prefer + - prefer 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 0bf6107..b8adeae 100644 --- a/tests/unit/modules/network/vyos/test_vyos_ntp_global.py +++ b/tests/unit/modules/network/vyos/test_vyos_ntp_global.py @@ -328,6 +328,7 @@ class TestVyosNTPModule(TestVyosModule): self.assertEqual(gathered_list, result["gathered"]) def test_ntp_deleted(self): + # Delete the subsections that we include (listen_addresses and servers) set_module_args( dict( config=dict( @@ -345,6 +346,25 @@ class TestVyosNTPModule(TestVyosModule): ), ) commands = [ + "delete system ntp allow-clients", # 10.1.1.0/24", + "delete system ntp listen-address", # 10.2.3.1", + "delete system ntp server server1", + "delete system ntp server server3", + "delete system ntp server time1.vyos.net", + "delete system ntp server time2.vyos.net", + "delete system ntp server time3.vyos.net", + "delete system ntp", + ] + self.execute_module(changed=True, commands=commands) + + def test_ntp__all_deleted(self): + set_module_args( + dict( + config=dict(), + state="deleted", + ), + ) + commands = [ "delete system ntp allow-clients", "delete system ntp listen-address", "delete system ntp server server1", @@ -352,6 +372,7 @@ class TestVyosNTPModule(TestVyosModule): "delete system ntp server time1.vyos.net", "delete system ntp server time2.vyos.net", "delete system ntp server time3.vyos.net", + "delete system ntp", ] self.execute_module(changed=True, commands=commands) @@ -427,13 +448,13 @@ class TestVyosNTPModule14(TestVyosModule): 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="server4", options=["pool", "prefer"]), dict( server="server5", options=[ "noselect", "pool", - "preempt", + "nts", "prefer", ], ), @@ -449,10 +470,10 @@ class TestVyosNTPModule14(TestVyosModule): "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 server4 prefer", "set service ntp server server5 pool", "set service ntp server server5 noselect", - "set service ntp server server5 preempt", + "set service ntp server server5 nts", "set service ntp server server5 prefer", ] @@ -472,7 +493,7 @@ class TestVyosNTPModule14(TestVyosModule): "noselect", "pool", "prefer", - "preempt", + "nts", ], ), dict(server="time1.vyos.net"), @@ -499,7 +520,7 @@ class TestVyosNTPModule14(TestVyosModule): "set service ntp server server6 noselect", "set service ntp server server6 pool", "set service ntp server server6 prefer", - "set service ntp server server6 preempt", + "set service ntp server server6 nts", ] self.execute_module(changed=True, commands=commands) @@ -679,5 +700,6 @@ class TestVyosNTPModule14(TestVyosModule): "delete service ntp server time1.vyos.net", "delete service ntp server time2.vyos.net", "delete service ntp server time3.vyos.net", + "delete service ntp", ] self.execute_module(changed=True, commands=commands) |