aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ansible/site.yml1
-rw-r--r--docker/healthcheck/Dockerfile12
-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, 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': ''
}
diff --git a/setup.cfg b/setup.cfg
index 3e35cfc37..fb2596510 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
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