aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2019-10-26 15:30:28 +0200
committerCédric Ollivier <cedric.ollivier@orange.com>2020-04-11 11:31:50 +0200
commit4ffbba3d9601595d68f969bae773727bd8d98f0b (patch)
tree5501ba9e8abbe9d01f72c1f0c77eca475309e937
parent890901c6e7e78cf733c2f765ea631d4980966b5c (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.yml1
-rw-r--r--docker/healthcheck/Dockerfile13
-rw-r--r--docker/healthcheck/testcases.yaml15
-rw-r--r--docs/release/release-notes/functest-release.rst1
-rw-r--r--functest/ci/testcases.yaml15
-rw-r--r--functest/opnfv_tests/openstack/tempest/tempest.py15
-rw-r--r--functest/utils/env.py3
-rw-r--r--setup.cfg1
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': ''
}
diff --git a/setup.cfg b/setup.cfg
index f4f74c921..82737d762 100644
--- 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