diff options
author | 2019-10-26 15:30:28 +0200 | |
---|---|---|
committer | 2019-10-29 19:18:56 +0100 | |
commit | 061bf6629f2115764f5e8b6fe68ab24bd3057eb6 (patch) | |
tree | acb2a6064ee4dd630c5d751e94afd5ce8003fbbb | |
parent | 61660c2638026b52d1dfe7e00ff2fc945de57c86 (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)
-rw-r--r-- | ansible/site.yml | 1 | ||||
-rw-r--r-- | docker/healthcheck/Dockerfile | 12 | ||||
-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, 59 insertions, 4 deletions
diff --git a/ansible/site.yml b/ansible/site.yml index f2e71b013..9c3aff88a 100644 --- a/ansible/site.yml +++ b/ansible/site.yml @@ -54,6 +54,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 7595d8db7..121e0eb1b 100644 --- a/docker/healthcheck/Dockerfile +++ b/docker/healthcheck/Dockerfile @@ -3,6 +3,7 @@ FROM opnfv/functest-core:jerma ARG BRANCH=stable/jerma ARG OPENSTACK_TAG=stable/train ARG ODL_TAG=85448c9d97b89989488e675b29b38ac42d8674e4 +ARG TEMPEST_HORIZON_TAG=0.2.0 COPY thirdparty-requirements.txt thirdparty-requirements.txt RUN apk --no-cache add --virtual .build-deps --update \ @@ -12,14 +13,19 @@ RUN apk --no-cache add --virtual .build-deps --update \ 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/ && \ pip3 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/python3.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 5aac7010e..c2a66494d 100644 --- a/docker/healthcheck/testcases.yaml +++ b/docker/healthcheck/testcases.yaml @@ -162,3 +162,18 @@ tiers: mode: '(?=.*\[.*\bsmoke\b.*\])(^tempest\.api)' option: - '--concurrency=4' + + - + 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 14b271ab4..12f291e64 100644 --- a/docs/release/release-notes/functest-release.rst +++ b/docs/release/release-notes/functest-release.rst @@ -33,6 +33,7 @@ The internal test cases are: * vping_userdata * cinder_test * tempest_smoke + * tempest_horizon * odl * neutron-tempest-plugin-api * rally_sanity diff --git a/functest/ci/testcases.yaml b/functest/ci/testcases.yaml index 53d9124eb..0b308b72a 100644 --- a/functest/ci/testcases.yaml +++ b/functest/ci/testcases.yaml @@ -163,6 +163,21 @@ tiers: option: - '--concurrency=4' + - + 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 d30d59468..c2bb76876 100644 --- a/functest/opnfv_tests/openstack/tempest/tempest.py +++ b/functest/opnfv_tests/openstack/tempest/tempest.py @@ -661,3 +661,18 @@ class TempestScenario(TempestCommon): instances=self.quota_instances, cores=self.quota_cores) 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) diff --git a/functest/utils/env.py b/functest/utils/env.py index 85676ed57..5aebbbe0c 100644 --- a/functest/utils/env.py +++ b/functest/utils/env.py @@ -38,7 +38,8 @@ INPUTS = { 'BLOCK_MIGRATION': 'True', '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 rally_sanity = functest.opnfv_tests.openstack.rally.rally:RallySanity refstack = functest.opnfv_tests.openstack.refstack.refstack:Refstack patrole = functest.opnfv_tests.openstack.patrole.patrole:Patrole |