aboutsummaryrefslogtreecommitdiffstats
path: root/functest/opnfv_tests/openstack/tempest
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2019-02-14 22:21:53 +0100
committerCédric Ollivier <cedric.ollivier@orange.com>2019-02-14 22:51:38 +0100
commit3393f2016483555c27d612c69ec11274cc8aa72a (patch)
tree46855c7471e8a2502cf755f3b7a8b5de0877caca /functest/opnfv_tests/openstack/tempest
parentb37bf1a31b9ea57ae983a13839205008caa90126 (diff)
Generate xunit reports (rally and tempest)
It adds xunit reports for rally-based and tempest-based testcases. It completes the reports provided by snaps (thanks to Xtesting). All rally related operations are moved to rally. It allows removing the rally dependency to tempest which was false. Change-Id: Ia7d2476f58f4f68b7c88442e50cad844037a36e9 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Diffstat (limited to 'functest/opnfv_tests/openstack/tempest')
-rw-r--r--functest/opnfv_tests/openstack/tempest/conf_utils.py58
-rw-r--r--functest/opnfv_tests/openstack/tempest/tempest.py18
2 files changed, 8 insertions, 68 deletions
diff --git a/functest/opnfv_tests/openstack/tempest/conf_utils.py b/functest/opnfv_tests/openstack/tempest/conf_utils.py
index 12671d4c1..d490ab036 100644
--- a/functest/opnfv_tests/openstack/tempest/conf_utils.py
+++ b/functest/opnfv_tests/openstack/tempest/conf_utils.py
@@ -10,11 +10,8 @@
"""Tempest configuration utilities."""
-from __future__ import print_function
-
import json
import logging
-import fileinput
import os
import subprocess
@@ -27,9 +24,6 @@ from functest.utils import env
from functest.utils import functest_utils
-RALLY_CONF_PATH = "/etc/rally/rally.conf"
-RALLY_AARCH64_PATCH_PATH = pkg_resources.resource_filename(
- 'functest', 'ci/rally_aarch64_patch.conf')
GLANCE_IMAGE_PATH = os.path.join(
getattr(config.CONF, 'dir_functest_images'),
getattr(config.CONF, 'openstack_image_file_name'))
@@ -46,44 +40,6 @@ CI_INSTALLER_TYPE = env.get('INSTALLER_TYPE')
LOGGER = logging.getLogger(__name__)
-def create_rally_deployment(environ=None):
- """Create new rally deployment"""
- # set the architecture to default
- pod_arch = env.get("POD_ARCH")
- arch_filter = ['aarch64']
-
- if pod_arch and pod_arch in arch_filter:
- LOGGER.info("Apply aarch64 specific to rally config...")
- with open(RALLY_AARCH64_PATCH_PATH, "r") as pfile:
- rally_patch_conf = pfile.read()
-
- for line in fileinput.input(RALLY_CONF_PATH):
- print(line, end=' ')
- if "cirros|testvm" in line:
- print(rally_patch_conf)
-
- LOGGER.info("Creating Rally environment...")
-
- try:
- cmd = ['rally', 'deployment', 'destroy',
- '--deployment',
- str(getattr(config.CONF, 'rally_deployment_name'))]
- output = subprocess.check_output(cmd)
- LOGGER.info("%s\n%s", " ".join(cmd), output)
- except subprocess.CalledProcessError:
- pass
-
- cmd = ['rally', 'deployment', 'create', '--fromenv',
- '--name', str(getattr(config.CONF, 'rally_deployment_name'))]
- output = subprocess.check_output(cmd, env=environ)
- LOGGER.info("%s\n%s", " ".join(cmd), output)
-
- cmd = ['rally', 'deployment', 'check']
- output = subprocess.check_output(cmd)
- LOGGER.info("%s\n%s", " ".join(cmd), output)
- return get_verifier_deployment_id()
-
-
def create_verifier():
"""Create new verifier"""
LOGGER.info("Create verifier from existing repo...")
@@ -119,20 +75,6 @@ def get_verifier_id():
return verifier_uuid
-def get_verifier_deployment_id():
- """
- Returns deployment id for active Rally deployment
- """
- cmd = ("rally deployment list | awk '/" +
- getattr(config.CONF, 'rally_deployment_name') +
- "/ {print $2}'")
- proc = subprocess.Popen(cmd, shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- deployment_uuid = proc.stdout.readline().rstrip()
- return deployment_uuid
-
-
def get_verifier_repo_dir(verifier_id):
"""
Returns installed verifier repo directory for Tempest
diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py
index 011c8b6fb..1ae37f91c 100644
--- a/functest/opnfv_tests/openstack/tempest/tempest.py
+++ b/functest/opnfv_tests/openstack/tempest/tempest.py
@@ -24,6 +24,7 @@ from xtesting.core import testcase
import yaml
from functest.core import singlevm
+from functest.opnfv_tests.openstack.rally import rally
from functest.opnfv_tests.openstack.tempest import conf_utils
from functest.utils import config
from functest.utils import env
@@ -289,14 +290,6 @@ class TempestCommon(singlevm.VmReady2):
LOGGER.info("Tempest %s success_rate is %s%%",
self.case_name, self.result)
- def generate_report(self):
- """Generate verification report."""
- html_file = os.path.join(self.res_dir,
- "tempest-report.html")
- cmd = ["rally", "verify", "report", "--type", "html", "--uuid",
- self.verification_id, "--to", str(html_file)]
- subprocess.check_output(cmd)
-
def update_rally_regex(self, rally_conf='/etc/rally/rally.conf'):
"""Set image name as tempest img_name_regex"""
rconfig = configparser.RawConfigParser()
@@ -420,7 +413,7 @@ class TempestCommon(singlevm.VmReady2):
del environ['OS_TENANT_ID']
except Exception: # pylint: disable=broad-except
pass
- self.deployment_id = conf_utils.create_rally_deployment(
+ self.deployment_id = rally.RallyBase.create_rally_deployment(
environ=environ)
if not self.deployment_id:
raise Exception("Deployment create failed")
@@ -471,7 +464,12 @@ class TempestCommon(singlevm.VmReady2):
self.apply_tempest_blacklist()
self.run_verifier_tests(**kwargs)
self.parse_verifier_result()
- self.generate_report()
+ rally.RallyBase.verify_report(
+ os.path.join(self.res_dir, "tempest-report.html"),
+ self.verification_id)
+ rally.RallyBase.verify_report(
+ os.path.join(self.res_dir, "tempest-report.xml"),
+ self.verification_id, "junit-xml")
res = testcase.TestCase.EX_OK
except Exception: # pylint: disable=broad-except
LOGGER.exception('Error with run')