Add healthcheck Horizon tests 32/69932/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Sat, 26 Oct 2019 13:30:28 +0000 (15:30 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sat, 11 Apr 2020 09:31:50 +0000 (11:31 +0200)
It runs TestDashboardBasicOps as proposed by tempest-horizon [1].
It's skipped if DASHBOARD_URL is unset (default).

[1] https://opendev.org/openstack/tempest-horizon

Change-Id: I1b6b5609412770609f412da4927641588b173ed6
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit 7b03643170974d4307e0f630e4c79340df98e06f)
(cherry picked from commit 9441711c5a03a7a8c476dcc28e1fbace38b48654)

ansible/site.yml
docker/healthcheck/Dockerfile
docker/healthcheck/testcases.yaml
docs/release/release-notes/functest-release.rst
functest/ci/testcases.yaml
functest/opnfv_tests/openstack/tempest/tempest.py
functest/utils/env.py
setup.cfg

index 780d3ef..28b115f 100644 (file)
@@ -57,6 +57,7 @@
             - cinder_test
             - odl
             - tempest_smoke
+            - tempest_horizon
         - container: functest-smoke
           tests:
             - neutron-tempest-plugin-api
index 52b65bf..43f450d 100644 (file)
@@ -4,6 +4,7 @@ ARG BRANCH=stable/hunter
 ARG OPENSTACK_TAG=stable/rocky
 ARG TEMPEST_TAG=21.0.0
 ARG ODL_TAG=85448c9d97b89989488e675b29b38ac42d8674e4
+ARG TEMPEST_HORIZON_TAG=0.1.0
 
 COPY thirdparty-requirements.txt thirdparty-requirements.txt
 RUN wget -q -O- https://opendev.org/openstack/requirements/raw/branch/$OPENSTACK_TAG/upper-constraints.txt > upper-constraints.txt && \
@@ -11,13 +12,19 @@ RUN wget -q -O- https://opendev.org/openstack/requirements/raw/branch/$OPENSTACK
     case $(uname -m) in aarch*|arm*) sed -i -E /^PyNaCl=/d upper-constraints.txt ;; esac && \
     wget -q -O- https://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH > upper-constraints.opnfv.txt && \
     sed -i -E /#egg=functest/d upper-constraints.opnfv.txt && \
+    git init /src/tempest-horizon && \
+    (cd /src/tempest-horizon && \
+        git fetch --tags https://opendev.org/openstack/tempest-horizon.git $TEMPEST_HORIZON_TAG && \
+        git checkout FETCH_HEAD) && \
+    update-requirements -s --source /src/openstack-requirements /src/tempest-horizon/ && \
     pip install --no-cache-dir --src /src -cupper-constraints.txt -cupper-constraints.opnfv.txt \
-        -rthirdparty-requirements.txt && \
+        /src/tempest-horizon/ -rthirdparty-requirements.txt && \
     git init /src/odl_test && \
     (cd /src/odl_test && \
         git fetch --tags https://git.opendaylight.org/gerrit/integration/test $ODL_TAG && \
         git checkout FETCH_HEAD) && \
-    rm -r /src/odl_test/.git thirdparty-requirements.txt upper-constraints.txt \
-        upper-constraints.opnfv.txt
+    rm -r /src/odl_test/.git /src/tempest-horizon/ thirdparty-requirements.txt upper-constraints.txt \
+        upper-constraints.opnfv.txt && \
+    apk del .build-deps
 COPY testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml
 CMD ["run_tests", "-t", "all"]
index 29b7863..d1129da 100644 (file)
@@ -162,3 +162,18 @@ tiers:
                         mode: '(?=.*\[.*\bsmoke\b.*\])(^tempest\.api)'
                         option:
                             - '--concurrency=3'
+
+            -
+                case_name: tempest_horizon
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    This test case runs the Tempest suite proposed by the
+                    Horizon project.
+                dependencies:
+                    - DASHBOARD_URL: '^(?!\s*$).+'
+                run:
+                    name: tempest_horizon
+                    args:
+                        mode: '^tempest_horizon.'
index b0a804c..200940e 100644 (file)
@@ -34,6 +34,7 @@ The internal test cases are:
  * cinder_test
  * odl
  * tempest_smoke
+ * tempest_horizon
  * neutron-tempest-plugin-api
  * tempest_cinder
  * tempest_keystone
index 7489a1c..86fd7bd 100644 (file)
@@ -163,6 +163,21 @@ tiers:
                         option:
                             - '--concurrency=3'
 
+            -
+                case_name: tempest_horizon
+                project_name: functest
+                criteria: 100
+                blocking: false
+                description: >-
+                    This test case runs the Tempest suite proposed by the
+                    Horizon project.
+                dependencies:
+                    - DASHBOARD_URL: '^(?!\s*$).+'
+                run:
+                    name: tempest_horizon
+                    args:
+                        mode: '^tempest_horizon.'
+
     -
         name: smoke
         order: 1
index 125d191..354f3b0 100644 (file)
@@ -664,6 +664,21 @@ class TempestScenario(TempestCommon):
         return super(TempestScenario, self).run(**kwargs)
 
 
+class TempestHorizon(TempestCommon):
+    """Tempest Horizon testcase implementation class."""
+
+    def configure(self, **kwargs):
+        super(TempestHorizon, self).configure(**kwargs)
+        rconfig = configparser.RawConfigParser()
+        rconfig.read(self.conf_file)
+        if not rconfig.has_section('dashboard'):
+            rconfig.add_section('dashboard')
+        rconfig.set('dashboard', 'dashboard_url', env.get('DASHBOARD_URL'))
+        with open(self.conf_file, 'w') as config_file:
+            rconfig.write(config_file)
+        self.backup_tempest_config(self.conf_file, self.res_dir)
+
+
 class TempestHeat(TempestCommon):
     """Tempest Heat testcase implementation class."""
 
index b5a1f69..652613c 100644 (file)
@@ -38,7 +38,8 @@ INPUTS = {
     'BLOCK_MIGRATION': 'False',
     'CLEAN_ORPHAN_SECURITY_GROUPS': 'True',
     'SKIP_DOWN_HYPERVISORS': 'False',
-    'PUBLIC_ENDPOINT_ONLY': 'False'
+    'PUBLIC_ENDPOINT_ONLY': 'False',
+    'DASHBOARD_URL': ''
 }
 
 
index f4f74c9..82737d7 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -27,6 +27,7 @@ xtesting.testcase =
     odl = functest.opnfv_tests.sdn.odl.odl:ODLTests
     tempest_common = functest.opnfv_tests.openstack.tempest.tempest:TempestCommon
     tempest_scenario = functest.opnfv_tests.openstack.tempest.tempest:TempestScenario
+    tempest_horizon = functest.opnfv_tests.openstack.tempest.tempest:TempestHorizon
     tempest_heat = functest.opnfv_tests.openstack.tempest.tempest:TempestHeat
     rally_sanity = functest.opnfv_tests.openstack.rally.rally:RallySanity
     refstack_defcore = functest.opnfv_tests.openstack.refstack.refstack:Refstack