Blob Blame History Raw
From e658f6f0e7906d220027c9a36bf16398fdca1564 Mon Sep 17 00:00:00 2001
From: Rich Megginson <rmeggins@redhat.com>
Date: Mon, 22 Mar 2021 13:45:01 -0600
Subject: [PATCH] add service cleanup for downstream testing

---
 tests/get_services_state.yml     |  4 ++++
 tests/restore_services_state.yml | 23 +++++++++++++++++++++++
 tests/tests_default.yml          | 10 ++++++++++
 tests/tests_default_wrapper.yml  |  9 +++++++++
 tests/tests_ntp.yml              | 10 ++++++++++
 tests/tests_ntp_provider1.yml    |  8 ++++++++
 tests/tests_ntp_provider2.yml    |  8 ++++++++
 tests/tests_ntp_provider3.yml    |  8 ++++++++
 tests/tests_ntp_provider4.yml    |  8 ++++++++
 tests/tests_ntp_provider5.yml    |  8 ++++++++
 tests/tests_ntp_provider6.yml    |  8 ++++++++
 tests/tests_ntp_ptp.yml          | 10 ++++++++++
 tests/tests_ptp_multi.yml        | 11 +++++++++++
 tests/tests_ptp_single.yml       | 11 +++++++++++
 14 files changed, 136 insertions(+)
 create mode 100644 tests/get_services_state.yml
 create mode 100644 tests/restore_services_state.yml

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..9cc9768
--- /dev/null
+++ b/tests/restore_services_state.yml
@@ -0,0 +1,23 @@
+- 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 9dc0e4c..61c1ea8 100644
--- a/tests/tests_default.yml
+++ b/tests/tests_default.yml
@@ -3,3 +3,13 @@
 
   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 3090259..98be26f 100644
--- a/tests/tests_default_wrapper.yml
+++ b/tests/tests_default_wrapper.yml
@@ -1,4 +1,7 @@
 - name: Create static inventory from hostvars
+  tags:
+#    - 'tests::tier1'
+    - 'tests::slow'
   hosts: all
   tasks:
     - name: create temporary file
@@ -15,9 +18,15 @@
       delegate_to: localhost
 
 - 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 9f39d24..c5768f4 100644
--- a/tests/tests_ntp.yml
+++ b/tests/tests_ntp.yml
@@ -20,6 +20,11 @@
   roles:
     - linux-system-roles.timesync
 
+  pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
   tasks:
     - block:
         - meta: flush_handlers
@@ -67,3 +72,8 @@
                 __timesync_chrony_version is version('3.1', '>=')
           when: chrony_conf is defined
       tags: tests::verify
+
+  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 988330a..e231b18 100644
--- a/tests/tests_ntp_provider1.yml
+++ b/tests/tests_ntp_provider1.yml
@@ -7,6 +7,10 @@
     - linux-system-roles.timesync
 
   pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
     - block:
         - name: Remove NTP providers
           package: name={{ item }} state=absent
@@ -31,3 +35,7 @@
             that:
               - "'172.16.123.1' in sources.stdout"
       tags: tests::verify
+
+    - 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 5a6284f..cf3e2a7 100644
--- a/tests/tests_ntp_provider2.yml
+++ b/tests/tests_ntp_provider2.yml
@@ -7,6 +7,10 @@
     - linux-system-roles.timesync
 
   pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
     - block:
         - name: Remove ntp
           package: name=ntp state=absent
@@ -33,3 +37,7 @@
         - name: Check chronyd service
           shell: chronyc -n tracking
       tags: tests::verify
+
+    - 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 d5117de..4b88991 100644
--- a/tests/tests_ntp_provider3.yml
+++ b/tests/tests_ntp_provider3.yml
@@ -7,6 +7,10 @@
     - linux-system-roles.timesync
 
   pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
     - block:
         - name: Remove chrony
           package: name=chrony state=absent
@@ -33,3 +37,7 @@
         - name: Check ntpd service
           shell: ntpq -c rv | grep 'associd=0'
       tags: tests::verify
+
+    - 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 c4e33c7..2e030c3 100644
--- a/tests/tests_ntp_provider4.yml
+++ b/tests/tests_ntp_provider4.yml
@@ -8,6 +8,10 @@
     - linux-system-roles.timesync
 
   pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
     - block:
         - name: Install chrony
           package: name=chrony state=present
@@ -31,3 +35,7 @@
         - name: Check chronyd service
           shell: chronyc -n tracking
       tags: tests::verify
+
+    - 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 09a855a..a4fbc2d 100644
--- a/tests/tests_ntp_provider5.yml
+++ b/tests/tests_ntp_provider5.yml
@@ -8,6 +8,10 @@
     - linux-system-roles.timesync
 
   pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
     - block:
         - name: Install ntp
           package: name=ntp state=present
@@ -31,3 +35,7 @@
         - name: Check ntpd service
           shell: ntpq -c rv | grep 'associd=0'
       tags: tests::verify
+
+    - 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 346b96a..31b55a1 100644
--- a/tests/tests_ntp_provider6.yml
+++ b/tests/tests_ntp_provider6.yml
@@ -7,6 +7,10 @@
     both_avail: true
 
   tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
     - block:
         - name: Check for availability of both NTP providers
           package: name={{ item }} state=present
@@ -81,3 +85,7 @@
           when:
             - not is_ntp_default
       tags: tests::verify
+
+    - 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 56079a3..fba330d 100644
--- a/tests/tests_ntp_ptp.yml
+++ b/tests/tests_ntp_ptp.yml
@@ -21,6 +21,11 @@
   roles:
     - linux-system-roles.timesync
 
+  pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
   tasks:
     - block:
         - meta: flush_handlers
@@ -49,3 +54,8 @@
 
           when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
       tags: tests::verify
+
+  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 1d1cd8e..02b44cb 100644
--- a/tests/tests_ptp_multi.yml
+++ b/tests/tests_ptp_multi.yml
@@ -1,4 +1,5 @@
 - name: Configure time synchronization with multiple PTP domains
+  tags: tests::expfail
   hosts: all
   vars:
     timesync_ptp_domains:
@@ -15,6 +16,11 @@
   roles:
     - linux-system-roles.timesync
 
+  pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
   tasks:
     - block:
         - meta: flush_handlers
@@ -61,3 +67,8 @@
 
           when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
       tags: tests::verify
+
+  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 c7ba401..b96c34c 100644
--- a/tests/tests_ptp_single.yml
+++ b/tests/tests_ptp_single.yml
@@ -1,4 +1,5 @@
 - name: Configure time synchronization with single PTP domain
+  tags: tests::expfail
   hosts: all
   vars:
     timesync_ptp_domains:
@@ -7,6 +8,11 @@
   roles:
     - linux-system-roles.timesync
 
+  pre_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: get_services_state.yml
+
   tasks:
     - block:
         - meta: flush_handlers
@@ -32,3 +38,8 @@
 
           when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
       tags: tests::verify
+
+  post_tasks:
+    - name: Import tasks
+#      tags: tests::tier1::cleanup
+      import_tasks: restore_services_state.yml
-- 
2.30.2