diff options
author | 2019-10-26 15:30:28 +0200 | |
---|---|---|
committer | 2020-04-11 11:31:50 +0200 | |
commit | 4ffbba3d9601595d68f969bae773727bd8d98f0b (patch) | |
tree | 5501ba9e8abbe9d01f72c1f0c77eca475309e937 | |
parent | 890901c6e7e78cf733c2f765ea631d4980966b5c (diff) |
Add healthcheck Horizon tests
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)
-rw-r--r-- | ansible/site.yml | 1 | ||||
-rw-r--r-- | docker/healthcheck/Dockerfile | 13 | ||||
-rw-r--r-- | docker/healthcheck/testcases.yaml | 15 | ||||
-rw-r--r-- | docs/release/release-notes/functest-release.rst | 1 | ||||
-rw-r--r-- | functest/ci/testcases.yaml | 15 | ||||
-rw-r--r-- | functest/opnfv_tests/openstack/tempest/tempest.py | 15 | ||||
-rw-r--r-- | functest/utils/env.py | 3 | ||||
-rw-r--r-- | setup.cfg | 1 |
8 files changed, 60 insertions, 4 deletions
diff --git a/ansible/site.yml b/ansible/site.yml index 780d3ef32..28b115f2b 100644 --- a/ansible/site.yml +++ b/ansible/site.yml @@ -57,6 +57,7 @@ - cinder_test - odl - tempest_smoke + - tempest_horizon - container: functest-smoke tests: - neutron-tempest-plugin-api diff --git a/docker/healthcheck/Dockerfile b/docker/healthcheck/Dockerfile index 52b65bf18..43f450d83 100644 --- a/docker/healthcheck/Dockerfile +++ b/docker/healthcheck/Dockerfile @@ -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"] diff --git a/docker/healthcheck/testcases.yaml b/docker/healthcheck/testcases.yaml index 29b786344..d1129da04 100644 --- a/docker/healthcheck/testcases.yaml +++ b/docker/healthcheck/testcases.yaml @@ -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.' diff --git a/docs/release/release-notes/functest-release.rst b/docs/release/release-notes/functest-release.rst index b0a804c43..200940e66 100644 --- a/docs/release/release-notes/functest-release.rst +++ b/docs/release/release-notes/functest-release.rst @@ -34,6 +34,7 @@ The internal test cases are: * cinder_test * odl * tempest_smoke + * tempest_horizon * neutron-tempest-plugin-api * tempest_cinder * tempest_keystone diff --git a/functest/ci/testcases.yaml b/functest/ci/testcases.yaml index 7489a1c66..86fd7bd3d 100644 --- a/functest/ci/testcases.yaml +++ b/functest/ci/testcases.yaml @@ -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 diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py index 125d1910f..354f3b04d 100644 --- a/functest/opnfv_tests/openstack/tempest/tempest.py +++ b/functest/opnfv_tests/openstack/tempest/tempest.py @@ -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.""" diff --git a/functest/utils/env.py b/functest/utils/env.py index b5a1f69ca..652613c87 100644 --- a/functest/utils/env.py +++ b/functest/utils/env.py @@ -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': '' } @@ -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 |