From aeeb946ebf22295b946ef4c2cc3d50d9e2bec152 Mon Sep 17 00:00:00 2001
From: "James E. Blair" <jim@acmegating.com>
Date: Fri, 22 Oct 2021 10:24:29 -0700
Subject: [PATCH] Update dstat to support bionic and others

Change-Id: Ida88ebbc6c169878adbb8e4f06da05eac813a04b
---
 roles/run-dstat/tasks/Ubuntu-18.04.yaml |   6 ++
 roles/run-dstat/tasks/default.yaml      |   6 ++
 roles/run-dstat/tasks/main.yaml         |  16 +--
 zuul-tests.d/general-roles-jobs.yaml    | 123 +++++++++++++++++++++++-
 4 files changed, 143 insertions(+), 8 deletions(-)
 create mode 100644 roles/run-dstat/tasks/Ubuntu-18.04.yaml
 create mode 100644 roles/run-dstat/tasks/default.yaml

diff --git a/roles/run-dstat/tasks/Ubuntu-18.04.yaml b/roles/run-dstat/tasks/Ubuntu-18.04.yaml
new file mode 100644
index 000000000..dd099da4d
--- /dev/null
+++ b/roles/run-dstat/tasks/Ubuntu-18.04.yaml
@@ -0,0 +1,6 @@
+- name: Install dstat
+  package:
+    name: dstat
+    state: present
+  become: true
+  failed_when: false
diff --git a/roles/run-dstat/tasks/default.yaml b/roles/run-dstat/tasks/default.yaml
new file mode 100644
index 000000000..5b71776ac
--- /dev/null
+++ b/roles/run-dstat/tasks/default.yaml
@@ -0,0 +1,6 @@
+- name: Install dstat
+  package:
+    name: pcp
+    state: present
+  become: true
+  failed_when: false
diff --git a/roles/run-dstat/tasks/main.yaml b/roles/run-dstat/tasks/main.yaml
index 60b9c435f..3dcf99283 100644
--- a/roles/run-dstat/tasks/main.yaml
+++ b/roles/run-dstat/tasks/main.yaml
@@ -1,9 +1,13 @@
-- name: Install dstat
-  package:
-    name: pcp
-    state: present
-  become: true
-  failed_when: false
+- name: Execute distro-specific tasks
+  include_tasks: "{{ zj_distro_os }}"
+  with_first_found:
+    - "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
+    - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yaml"
+    - "{{ ansible_distribution }}.yaml"
+    - "{{ ansible_os_family }}.yaml"
+    - "default.yaml"
+  loop_control:
+    loop_var: zj_distro_os
 - name: Run dstat
   shell: "dstat -tcmndrylpg --tcp --output {{ dstat_data_path }} >& /dev/null &"
   args:
diff --git a/zuul-tests.d/general-roles-jobs.yaml b/zuul-tests.d/general-roles-jobs.yaml
index 41eba4f4e..fcdfb422a 100644
--- a/zuul-tests.d/general-roles-jobs.yaml
+++ b/zuul-tests.d/general-roles-jobs.yaml
@@ -385,12 +385,114 @@
     name: zuul-jobs-test-dstat-graph
     description: Test the dstat-graph roles
     run: test-playbooks/dstat-graph.yaml
+    tags: all-platforms
     files:
       - ^roles/ensure-dstat-graph/.*
       - ^roles/run-dstat/.*
       - ^roles/dstat-graph/.*
       - ^test-playbooks/dstat-graph.yaml
 
+- job:
+    name: zuul-jobs-test-dstat-graph-centos-7
+    description: Test the dstat-graph roles on centos-7
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: centos-7
+          label: centos-7
+
+- job:
+    name: zuul-jobs-test-dstat-graph-centos-8
+    description: Test the dstat-graph roles on centos-8
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: centos-8
+          label: centos-8
+
+- job:
+    name: zuul-jobs-test-dstat-graph-centos-8-stream
+    description: Test the dstat-graph roles on centos-8-stream
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: centos-8-stream
+          label: centos-8-stream
+
+- job:
+    name: zuul-jobs-test-dstat-graph-debian-buster
+    description: Test the dstat-graph roles on debian-buster
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: debian-buster
+          label: debian-buster
+
+- job:
+    name: zuul-jobs-test-dstat-graph-debian-bullseye
+    description: Test the dstat-graph roles on debian-bullseye
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: debian-bullseye
+          label: debian-bullseye
+
+- job:
+    name: zuul-jobs-test-dstat-graph-fedora-34
+    description: Test the dstat-graph roles on fedora-34
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: fedora-34
+          label: fedora-34
+
+- job:
+    name: zuul-jobs-test-dstat-graph-opensuse-15
+    description: Test the dstat-graph roles on opensuse-15
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: opensuse-15
+          label: opensuse-15
+
+- job:
+    name: zuul-jobs-test-dstat-graph-opensuse-tumbleweed-nv
+    voting: false
+    description: Test the dstat-graph roles on opensuse-tumbleweed
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: opensuse-tumbleweed
+          label: opensuse-tumbleweed
+
+- job:
+    name: zuul-jobs-test-dstat-graph-ubuntu-bionic
+    description: Test the dstat-graph roles on ubuntu-bionic
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: ubuntu-bionic
+          label: ubuntu-bionic
+
+- job:
+    name: zuul-jobs-test-dstat-graph-ubuntu-focal
+    description: Test the dstat-graph roles on ubuntu-focal
+    parent: zuul-jobs-test-dstat-graph
+    tags: auto-generated
+    nodeset:
+      nodes:
+        - name: ubuntu-focal
+          label: ubuntu-focal
+
 - job:
     name: zuul-jobs-test-multinode-roles
     description: |
@@ -724,7 +826,16 @@
         - zuul-jobs-test-enable-fips
         - zuul-jobs-test-ensure-bazelisk
         - zuul-jobs-test-netconsole
-        - zuul-jobs-test-dstat-graph
+        - zuul-jobs-test-dstat-graph-centos-7
+        - zuul-jobs-test-dstat-graph-centos-8
+        - zuul-jobs-test-dstat-graph-centos-8-stream
+        - zuul-jobs-test-dstat-graph-debian-buster
+        - zuul-jobs-test-dstat-graph-debian-bullseye
+        - zuul-jobs-test-dstat-graph-fedora-34
+        - zuul-jobs-test-dstat-graph-opensuse-15
+        - zuul-jobs-test-dstat-graph-opensuse-tumbleweed-nv
+        - zuul-jobs-test-dstat-graph-ubuntu-bionic
+        - zuul-jobs-test-dstat-graph-ubuntu-focal
         - zuul-jobs-test-multinode-roles-centos-7
         - zuul-jobs-test-multinode-roles-centos-8
         - zuul-jobs-test-multinode-roles-centos-8-stream
@@ -771,7 +882,15 @@
         - zuul-jobs-test-enable-fips
         - zuul-jobs-test-ensure-bazelisk
         - zuul-jobs-test-netconsole
-        - zuul-jobs-test-dstat-graph
+        - zuul-jobs-test-dstat-graph-centos-7
+        - zuul-jobs-test-dstat-graph-centos-8
+        - zuul-jobs-test-dstat-graph-centos-8-stream
+        - zuul-jobs-test-dstat-graph-debian-buster
+        - zuul-jobs-test-dstat-graph-debian-bullseye
+        - zuul-jobs-test-dstat-graph-fedora-34
+        - zuul-jobs-test-dstat-graph-opensuse-15
+        - zuul-jobs-test-dstat-graph-ubuntu-bionic
+        - zuul-jobs-test-dstat-graph-ubuntu-focal
         - zuul-jobs-test-multinode-roles-centos-7
         - zuul-jobs-test-multinode-roles-centos-8
         - zuul-jobs-test-multinode-roles-centos-8-stream