Merge "setup.cfg: Replace dashes with underscores"
diff --git a/.zuul.yaml b/.zuul.yaml
index 80d98e1..2195fa1 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -31,7 +31,6 @@
         panko: https://opendev.org/openstack/panko
       devstack_services:
         tempest: true
-        tls-proxy: false
       devstack_localrc:
         TEMPEST_PLUGINS: '"/opt/stack/telemetry-tempest-plugin /opt/stack/heat-tempest-plugin"'
         GNOCCHI_ARCHIVE_POLICY_TEMPEST: "ceilometer-high-rate"
@@ -80,7 +79,6 @@
         panko: https://opendev.org/openstack/panko
       devstack_services:
         tempest: true
-        tls-proxy: false
       devstack_localrc:
         USE_PYTHON3: True
         TEMPEST_PLUGINS: '"/opt/stack/telemetry-tempest-plugin /opt/stack/heat-tempest-plugin"'
@@ -94,14 +92,13 @@
     name: telemetry-dsvm-integration
     parent: telemetry-tempest-base
     branches: ^(?!stable/(ocata|pike|queens|rocky|stein|train)).*$
-    voting: false
 
 - job:
     name: telemetry-dsvm-integration
     parent: telemetry-tempest-base
     branches:
-      - stable/stein
       - stable/train
+      - stable/wallaby
     vars:
       devstack_localrc:
         USE_PYTHON3: False
@@ -129,13 +126,13 @@
       Telemetry devstack tempest tests job for IPv6-only deployment
     required-projects: *base_required_projects
     vars: *base_vars
-    voting: false
 
 - job:
-    name: telemetry-dsvm-integration-ussuri
+    name: telemetry-dsvm-integration-wallaby
     parent: telemetry-dsvm-integration
     nodeset: openstack-single-node-bionic
-    override-checkout: stable/ussuri
+    override-checkout: stable/wallaby
+    voting: false
 
 - job:
     name: telemetry-dsvm-integration-train
@@ -146,6 +143,34 @@
       devstack_localrc:
         USE_PYTHON3: True
 
+- job:
+    name: telemetry-dsvm-integration-centos-8s
+    nodeset: devstack-single-node-centos-8-stream
+    parent: telemetry-dsvm-integration
+    description: |
+      Telemetry devstack tempest tests job for a Centos 8 stream system
+
+- job:
+    name: telemetry-dsvm-integration-centos-8s-fips
+    parent: telemetry-dsvm-integration-centos-8s
+    description: |
+      Telemetry devstack tempest tests job for a FIPS enabled Centos 8 stream system
+    pre-run: playbooks/enable-fips.yaml
+
+- job:
+    name: telemetry-dsvm-integration-centos-9s
+    nodeset: devstack-single-node-centos-9-stream
+    parent: telemetry-dsvm-integration
+    description: |
+      Telemetry devstack tempest tests job for a Centos 9 stream system
+
+- job:
+    name: telemetry-dsvm-integration-centos-9s-fips
+    parent: telemetry-dsvm-integration-centos-9s
+    description: |
+      Telemetry devstack tempest tests job for a FIPS enabled Centos 9 stream system
+    pre-run: playbooks/enable-fips.yaml
+
 - project:
     templates:
       - check-requirements
@@ -153,9 +178,11 @@
     check:
       jobs:
         - telemetry-dsvm-integration
-        - telemetry-dsvm-integration-ussuri
+        - telemetry-dsvm-integration-wallaby
         - telemetry-dsvm-integration-train
         - telemetry-dsvm-integration-ipv6-only
+        - telemetry-dsvm-integration-centos-9s
+        - telemetry-dsvm-integration-centos-9s-fips
     gate:
       queue: telemetry
       jobs:
diff --git a/README.rst b/README.rst
index 0425bf4..2fe20b8 100644
--- a/README.rst
+++ b/README.rst
@@ -4,7 +4,7 @@
 
 Tempest plugin for Telemetry Project.
 
-It contains tempest tests for Aodh, Ceilometer, Gnocchi and Panko Projects.
+It contains tempest tests for Aodh, Ceilometer, and Gnocchi Projects.
 
 * Free software: Apache license
 * Documentation: https://docs.openstack.org/ceilometer/latest/
diff --git a/test-requirements.txt b/doc/requirements.txt
similarity index 89%
rename from test-requirements.txt
rename to doc/requirements.txt
index f8e7e3a..856012d 100644
--- a/test-requirements.txt
+++ b/doc/requirements.txt
@@ -2,9 +2,8 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-hacking>=3.0.1,<3.1.0 # Apache-2.0
-
 sphinx>=2.0.0,!=2.1.0 # BSD
 openstackdocstheme>=2.2.1 # Apache-2.0
 # releasenotes
 reno>=3.1.0 # Apache-2.0
+
diff --git a/playbooks/enable-fips.yaml b/playbooks/enable-fips.yaml
new file mode 100644
index 0000000..c8f042d
--- /dev/null
+++ b/playbooks/enable-fips.yaml
@@ -0,0 +1,4 @@
+- hosts: all
+  tasks:
+    - include_role:
+        name: enable-fips
diff --git a/requirements.txt b/requirements.txt
index aa20603..51dcad8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,8 +3,8 @@
 # process, which may cause wedges in the gate later.
 
 pbr>=2.0 # Apache-2.0
-oslo.config>=5.1.0 # Apache-2.0
-oslo.utils>=3.31.0 # Apache-2.0
+oslo.config>=6.0.0 # Apache-2.0
+oslo.utils>=3.37.0 # Apache-2.0
 six>=1.10.0 # MIT
 tempest>=17.1.0 # Apache-2.0
 gabbi>=1.30.0 # Apache-2.0
diff --git a/setup.cfg b/setup.cfg
index 0069fd2..ecad152 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -19,6 +19,8 @@
     Programming Language :: Python :: 3
     Programming Language :: Python :: 3.6
     Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+
 
 [files]
 packages =
diff --git a/telemetry_tempest_plugin/config.py b/telemetry_tempest_plugin/config.py
index 403bc9c..e12d3f9 100644
--- a/telemetry_tempest_plugin/config.py
+++ b/telemetry_tempest_plugin/config.py
@@ -20,10 +20,6 @@
                               default=True,
                               help="Whether or not Ceilometer is expected to"
                                    "be available"),
-                  cfg.BoolOpt('panko',
-                              default=True,
-                              help="Whether or not Panko is expected to be"
-                                   "available"),
                   cfg.BoolOpt("aodh",
                               default=True,
                               help="Whether or not Aodh is expected to be"
diff --git a/telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/autoscaling.yaml b/telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/autoscaling.yaml
deleted file mode 100644
index 900aa76..0000000
--- a/telemetry_tempest_plugin/scenario/telemetry_integration_gabbits/autoscaling.yaml
+++ /dev/null
@@ -1,140 +0,0 @@
-defaults:
-    request_headers:
-        x-auth-token: $ENVIRON['USER_TOKEN']
-
-tests:
-    - name: list alarms none
-      desc: Lists alarms, none yet exist
-      url: $ENVIRON['AODH_SERVICE_URL']/v2/alarms
-      method: GET
-      response_strings:
-          - "[]"
-
-    - name: list servers none
-      desc: List servers, none yet exists
-      url: $ENVIRON['NOVA_SERVICE_URL']/servers
-      method: GET
-      response_strings:
-          - "[]"
-
-    - name: create stack
-      desc: Create an autoscaling stack
-      url: $ENVIRON['HEAT_SERVICE_URL']/stacks
-      method: POST
-      request_headers:
-          content-type: application/json
-      data: <@create_stack.json
-      status: 201
-
-    - name: control stack status
-      desc: Checks the stack have been created successfully
-      url: $ENVIRON['HEAT_SERVICE_URL']/stacks/$ENVIRON['STACK_NAME']
-      redirects: true
-      method: GET
-      status: 200
-      poll:
-          count: 300
-          delay: 1
-      response_json_paths:
-          $.stack.stack_status: "CREATE_COMPLETE"
-
-    - name: list servers grow
-      desc: Wait the autoscaling stack grow to two servers
-      url: $ENVIRON['NOVA_SERVICE_URL']/servers/detail
-      method: GET
-      poll:
-          count: 600
-          delay: 1
-      response_json_paths:
-          $.servers[0].metadata.'metering.server_group': $RESPONSE['$.stack.id']
-          $.servers[1].metadata.'metering.server_group': $RESPONSE['$.stack.id']
-          $.servers[0].status: ACTIVE
-          $.servers[1].status: ACTIVE
-          $.servers.`len`: 2
-
-    - name: check gnocchi resources
-      desc: Check the gnocchi resources for this two servers exists
-      url: $ENVIRON['GNOCCHI_SERVICE_URL']/v1/search/resource/instance
-      method: POST
-      request_headers:
-          content-type: application/json
-      data:
-          =:
-              server_group: $RESPONSE['$.servers[0].metadata."metering.server_group"']
-      poll:
-          count: 30
-          delay: 1
-      response_json_paths:
-          $.`len`: 2
-
-    - name: check event
-      desc: Check panko for new instance.create.end event
-      url: $ENVIRON['PANKO_SERVICE_URL']/v2/events
-      method: GET
-      request_headers:
-          content-type: application/json
-      data:
-          q:
-            - field: event_type
-              op: eq
-              type: string
-              value: compute.instance.create.end
-            - field: resource_id
-              op: eq
-              type: string
-              value: $HISTORY['list servers grow'].$RESPONSE['$.servers[0].id']
-      poll:
-          count: 30
-          delay: 1
-      response_json_paths:
-          $.`len`: 1
-          $[0].event_type: compute.instance.create.end
-          $[0].traits[?(@.name='resource_id')].value: $HISTORY['list servers grow'].$RESPONSE['$.servers[0].id']
-
-    - name: check alarm
-      desc: Check the aodh alarm and its state
-      url: $ENVIRON['AODH_SERVICE_URL']/v2/alarms
-      method: GET
-      poll:
-          count: 30
-          delay: 1
-      response_strings:
-          - "$ENVIRON['STACK_NAME']-cpu_alarm_high-"
-      response_json_paths:
-          $[0].state: alarm
-
-    - name: get stack location
-      desc: Get the stack location
-      url: $ENVIRON['HEAT_SERVICE_URL']/stacks/$ENVIRON['STACK_NAME']
-      method: GET
-      status: 302
-
-    - name: delete stack
-      desc: Delete the stack
-      url: $LOCATION
-      method: DELETE
-      status: 204
-
-    - name: get deleted stack
-      desc: Check the stack have been deleted
-      url: $ENVIRON['HEAT_SERVICE_URL']/stacks/$ENVIRON['STACK_NAME']
-      redirects: true
-      method: GET
-      poll:
-          count: 300
-          delay: 1
-      status: 404
-
-    - name: list alarms deleted
-      desc: List alarms, no more exist
-      url: $ENVIRON['AODH_SERVICE_URL']/v2/alarms
-      method: GET
-      response_strings:
-          - "[]"
-
-    - name: list servers deleted
-      desc: List servers, no more exists
-      url: $ENVIRON['NOVA_SERVICE_URL']/servers
-      method: GET
-      response_strings:
-          - "[]"
diff --git a/telemetry_tempest_plugin/scenario/test_telemetry_integration.py b/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
index 66d2573..7db4fd5 100644
--- a/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
+++ b/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
@@ -31,7 +31,7 @@
     def skip_checks(cls):
         super(TestTelemetryIntegration, cls).skip_checks()
         for name in ["aodh", "gnocchi", "nova", "heat",
-                     "panko", "ceilometer", "glance"]:
+                     "ceilometer", "glance"]:
             cls._check_service(name)
 
     @classmethod
@@ -91,7 +91,6 @@
             "AODH_GRANULARITY": str(config.CONF.telemetry.alarm_granularity),
             "AODH_SERVICE_URL": self._get_endpoint(auth, "alarming_plugin"),
             "GNOCCHI_SERVICE_URL": self._get_endpoint(auth, "metric"),
-            "PANKO_SERVICE_URL": self._get_endpoint(auth, "event"),
             "HEAT_SERVICE_URL": self._get_endpoint(auth, "heat_plugin"),
             "NOVA_SERVICE_URL": self._get_endpoint(auth, "compute"),
             "GLANCE_SERVICE_URL": self._get_endpoint(auth, "image"),
diff --git a/tox.ini b/tox.ini
index 5ae7b00..e23dbc8 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,31 +1,38 @@
 [tox]
-minversion = 3.1.1
-envlist = py37,py36,pypy,pep8
-skipsdist = True
+minversion = 3.18.0
+envlist = py3,pypy,pep8
 ignore_basepython_conflict = True
 
 [testenv]
 basepython = python3
+sitepackages = False
 usedevelop = True
-install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages}
 setenv =
    VIRTUAL_ENV={envdir}
    PYTHONWARNINGS=default::DeprecationWarning
    OS_STDOUT_CAPTURE=1
    OS_STDERR_CAPTURE=1
    OS_TEST_TIMEOUT=60
-deps = -r{toxinidir}/test-requirements.txt
+deps =
+  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  -r{toxinidir}/requirements.txt
+
 commands = stestr run {posargs}
 
 [testenv:pep8]
+deps = hacking>=3.0,<3.1.0
 commands = flake8 {posargs}
 
 [testenv:venv]
 commands = {posargs}
 
 [testenv:docs]
+deps =
+  -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  -r{toxinidir}/doc/requirements.txt
 commands =
   sphinx-build -a -E -W -b html doc/source doc/build/html
+setenv = PYTHONHASHSEED=0
 
 [testenv:releasenotes]
 commands =