diff --git a/tests/get_services_state.yml b/tests/get_services_state.yml new file mode 100644 index 0000000..4fe5d36 --- /dev/null +++ b/tests/get_services_state.yml @@ -0,0 +1,4 @@ +- name: Get initial state of services + tags: tests::cleanup + service_facts: + register: initial_state diff --git a/tests/restore_services_state.yml b/tests/restore_services_state.yml new file mode 100644 index 0000000..3d48975 --- /dev/null +++ b/tests/restore_services_state.yml @@ -0,0 +1,19 @@ +- name: Get final state of services + tags: tests::cleanup + service_facts: + register: final_state + +- name: Restore state of services + tags: tests::cleanup + service: + name: "{{ item }}" + state: "{{ 'started' if initial_state.ansible_facts.services[item + '.service']['state'] == 'running' else 'stopped' }}" + when: + - item + '.service' in final_state.ansible_facts.services + - item + '.service' in initial_state.ansible_facts.services + with_items: + - chronyd + - ntpd + - ptp4l + - phc2sys + - timemaster diff --git a/tests/tests_default.yml b/tests/tests_default.yml index 856ebe5..fb298c9 100644 --- a/tests/tests_default.yml +++ b/tests/tests_default.yml @@ -3,4 +4,14 @@ hosts: all roles: - linux-system-roles.timesync + + pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + + post_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_default_wrapper.yml b/tests/tests_default_wrapper.yml index a768f4c..b0c0ab3 100644 --- a/tests/tests_default_wrapper.yml +++ b/tests/tests_default_wrapper.yml @@ -1,5 +1,8 @@ --- - name: Create static inventory from hostvars + tags: +# - 'tests::tier1' + - 'tests::slow' hosts: all tasks: - name: create temporary file @@ -17,9 +20,15 @@ - name: Run tests_default.yml normally + tags: +# - 'tests::tier1' + - 'tests::slow' import_playbook: tests_default.yml - name: Run tests_default.yml in check_mode + tags: +# - 'tests::tier1' + - 'tests::slow' hosts: all tasks: - name: Run ansible-playbook with tests_default.yml in check mode diff --git a/tests/tests_ntp.yml b/tests/tests_ntp.yml index e4b1b5e..446f1dc 100644 --- a/tests/tests_ntp.yml +++ b/tests/tests_ntp.yml @@ -18,6 +19,11 @@ roles: - linux-system-roles.timesync + pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + tasks: - meta: flush_handlers @@ -35,3 +41,8 @@ - "'172.16.123.1' in sources.stdout" - "'172.16.123.2' in sources.stdout" - "'172.16.123.3' in sources.stdout" + + post_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ntp_provider1.yml b/tests/tests_ntp_provider1.yml index 08ecab9..9fe0db3 100644 --- a/tests/tests_ntp_provider1.yml +++ b/tests/tests_ntp_provider1.yml @@ -8,6 +9,10 @@ - linux-system-roles.timesync pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + - name: Remove NTP providers package: name={{ item }} state=absent with_items: @@ -27,3 +32,7 @@ assert: that: - "'172.16.123.1' in sources.stdout" + + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ntp_provider2.yml b/tests/tests_ntp_provider2.yml index 5476ae4..e0d5c96 100644 --- a/tests/tests_ntp_provider2.yml +++ b/tests/tests_ntp_provider2.yml @@ -8,6 +9,10 @@ - linux-system-roles.timesync pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + - name: Remove ntp package: name=ntp state=absent @@ -29,3 +34,7 @@ - name: Check chronyd service shell: chronyc -n tracking + + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ntp_provider3.yml b/tests/tests_ntp_provider3.yml index 44ca101..d440a64 100644 --- a/tests/tests_ntp_provider3.yml +++ b/tests/tests_ntp_provider3.yml @@ -8,6 +9,10 @@ - linux-system-roles.timesync pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + - name: Remove chrony package: name=chrony state=absent @@ -29,3 +34,7 @@ - name: Check ntpd service shell: ntpq -c rv | grep 'associd=0' + + - name: Import tasks + tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ntp_provider4.yml b/tests/tests_ntp_provider4.yml index 8b452b8..8bccba0 100644 --- a/tests/tests_ntp_provider4.yml +++ b/tests/tests_ntp_provider4.yml @@ -9,6 +10,10 @@ - linux-system-roles.timesync pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + - name: Install chrony package: name=chrony state=present register: package_install @@ -27,3 +32,7 @@ - name: Check chronyd service shell: chronyc -n tracking + + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ntp_provider5.yml b/tests/tests_ntp_provider5.yml index 1740164..98a054f 100644 --- a/tests/tests_ntp_provider5.yml +++ b/tests/tests_ntp_provider5.yml @@ -9,6 +10,10 @@ - linux-system-roles.timesync pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + - name: Install ntp package: name=ntp state=present register: package_install @@ -27,3 +32,7 @@ - name: Check ntpd service shell: ntpq -c rv | grep 'associd=0' + + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ntp_provider6.yml b/tests/tests_ntp_provider6.yml index 21a2039..fb41824 100644 --- a/tests/tests_ntp_provider6.yml +++ b/tests/tests_ntp_provider6.yml @@ -6,6 +7,10 @@ both_avail: true tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + - name: Check for availability of both NTP providers package: name={{ item }} state=present register: package_install @@ -71,3 +76,7 @@ shell: chronyc -n tracking when: - not is_ntp_default + + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ntp_ptp.yml b/tests/tests_ntp_ptp.yml index cab706f..7f4cdfc 100644 --- a/tests/tests_ntp_ptp.yml +++ b/tests/tests_ntp_ptp.yml @@ -22,6 +23,11 @@ roles: - linux-system-roles.timesync + pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + tasks: - meta: flush_handlers @@ -48,3 +54,8 @@ - "'PTP1' in sources.stdout" when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout" + + post_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ptp_multi.yml b/tests/tests_ptp_multi.yml index d52d439..936e467 100644 --- a/tests/tests_ptp_multi.yml +++ b/tests/tests_ptp_multi.yml @@ -1,5 +1,6 @@ - name: Configure time synchronization with multiple PTP domains + tags: tests::expfail hosts: all vars: timesync_ptp_domains: @@ -16,6 +17,11 @@ roles: - linux-system-roles.timesync + pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + tasks: - meta: flush_handlers @@ -58,3 +64,8 @@ - "'domainNumber 1' in pmc.stdout" when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout" + + post_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_ptp_single.yml b/tests/tests_ptp_single.yml index 74da310..36d141e 100644 --- a/tests/tests_ptp_single.yml +++ b/tests/tests_ptp_single.yml @@ -1,5 +1,6 @@ - name: Configure time synchronization with single PTP domain + tags: tests::expfail hosts: all vars: timesync_ptp_domains: @@ -8,6 +9,11 @@ roles: - linux-system-roles.timesync + pre_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: get_services_state.yml + tasks: - meta: flush_handlers @@ -31,3 +37,8 @@ - "'domainNumber 3' in pmc.stdout" when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout" + + post_tasks: + - name: Import tasks +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml