diff options
-rwxr-xr-x | functest/ci/config_functest.yaml | 2 | ||||
-rwxr-xr-x | functest/opnfv_tests/openstack/rally/run_rally-cert.py | 33 | ||||
-rw-r--r-- | functest/opnfv_tests/openstack/tempest/tempest.py | 52 | ||||
-rw-r--r-- | functest/utils/functest_constants.py | 2 | ||||
-rw-r--r-- | functest/utils/functest_utils.py | 5 |
5 files changed, 44 insertions, 50 deletions
diff --git a/functest/ci/config_functest.yaml b/functest/ci/config_functest.yaml index fb438842f..15e0d3a1a 100755 --- a/functest/ci/config_functest.yaml +++ b/functest/ci/config_functest.yaml @@ -3,7 +3,7 @@ general: # Relative to the path where the repo is cloned: vping: functest/opnfv_tests/openstack/vping dir_odl: functest/opnfv_tests/sdn/odl - dir_rally: functest/opnfv_tests/openstack/rally + rally: functest/opnfv_tests/openstack/rally tempest_cases: functest/opnfv_tests/openstack/tempest/custom_tests dir_vIMS: functest/opnfv_tests/vnf/ims dir_onos: functest/opnfv_tests/sdn/onos/teston diff --git a/functest/opnfv_tests/openstack/rally/run_rally-cert.py b/functest/opnfv_tests/openstack/rally/run_rally-cert.py index 6d8f01602..ec22b52d8 100755 --- a/functest/opnfv_tests/openstack/rally/run_rally-cert.py +++ b/functest/opnfv_tests/openstack/rally/run_rally-cert.py @@ -15,20 +15,20 @@ # """ tests configuration """ +import argparse import json import os import re import subprocess import time -import argparse import iniparse import yaml +from functest.utils.constants import CONST import functest.utils.functest_logger as ft_logger import functest.utils.functest_utils as ft_utils import functest.utils.openstack_utils as os_utils -import functest.utils.functest_constants as ft_constants tests = ['authenticate', 'glance', 'cinder', 'heat', 'keystone', 'neutron', 'nova', 'quotas', 'requests', 'vm', 'all'] @@ -71,8 +71,7 @@ else: """ logging configuration """ logger = ft_logger.Logger("run_rally-cert").getLogger() -RALLY_DIR = os.path.join(ft_constants.FUNCTEST_REPO_DIR, - ft_constants.RALLY_RELATIVE_PATH) +RALLY_DIR = os.path.join(CONST.dir_repo_functest, CONST.dir_rally) RALLY_SCENARIO_DIR = os.path.join(RALLY_DIR, "scenario") SANITY_MODE_DIR = os.path.join(RALLY_SCENARIO_DIR, "sanity") FULL_MODE_DIR = os.path.join(RALLY_SCENARIO_DIR, "full") @@ -87,19 +86,19 @@ TENANTS_AMOUNT = 3 ITERATIONS_AMOUNT = 10 CONCURRENCY = 4 -RESULTS_DIR = os.path.join(ft_constants.FUNCTEST_RESULTS_DIR, 'rally') -TEMPEST_CONF_FILE = os.path.join(ft_constants.FUNCTEST_RESULTS_DIR, +RESULTS_DIR = os.path.join(CONST.dir_results, 'rally') +TEMPEST_CONF_FILE = os.path.join(CONST.dir_results, 'tempest/tempest.conf') -RALLY_PRIVATE_NET_NAME = ft_constants.RALLY_PRIVATE_NET_NAME -RALLY_PRIVATE_SUBNET_NAME = ft_constants.RALLY_PRIVATE_SUBNET_NAME -RALLY_PRIVATE_SUBNET_CIDR = ft_constants.RALLY_PRIVATE_SUBNET_CIDR -RALLY_ROUTER_NAME = ft_constants.RALLY_ROUTER_NAME +RALLY_PRIVATE_NET_NAME = CONST.rally_network_name +RALLY_PRIVATE_SUBNET_NAME = CONST.rally_subnet_name +RALLY_PRIVATE_SUBNET_CIDR = CONST.rally_subnet_cidr +RALLY_ROUTER_NAME = CONST.rally_router_name -GLANCE_IMAGE_NAME = ft_constants.GLANCE_IMAGE_NAME -GLANCE_IMAGE_FILENAME = ft_constants.GLANCE_IMAGE_FILENAME -GLANCE_IMAGE_FORMAT = ft_constants.GLANCE_IMAGE_FORMAT -GLANCE_IMAGE_PATH = os.path.join(ft_constants.FUNCTEST_DATA_DIR, +GLANCE_IMAGE_NAME = CONST.openstack_image_name +GLANCE_IMAGE_FILENAME = CONST.openstack_image_file_name +GLANCE_IMAGE_FORMAT = CONST.openstack_image_disk_format +GLANCE_IMAGE_PATH = os.path.join(CONST.dir_functest_data, GLANCE_IMAGE_FILENAME) CINDER_VOLUME_TYPE_NAME = "volume_test" @@ -181,7 +180,7 @@ def build_task_args(test_file_name): net_id = GlobalVariables.network_dict['net_id'] task_args['netid'] = str(net_id) - auth_url = ft_constants.OS_AUTH_URL + auth_url = CONST.OS_AUTH_URL if auth_url is not None: task_args['request_url'] = auth_url.rsplit(":", 1)[0] else: @@ -271,8 +270,8 @@ def excl_scenario(): with open(BLACKLIST_FILE, 'r') as black_list_file: black_list_yaml = yaml.safe_load(black_list_file) - installer_type = ft_constants.CI_INSTALLER_TYPE - deploy_scenario = ft_constants.CI_SCENARIO + installer_type = CONST.INSTALLER_TYPE + deploy_scenario = CONST.DEPLOY_SCENARIO if (bool(installer_type) * bool(deploy_scenario)): if 'scenario' in black_list_yaml.keys(): for item in black_list_yaml['scenario']: diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py index 6ad553353..20b1ebb4c 100644 --- a/functest/opnfv_tests/openstack/tempest/tempest.py +++ b/functest/opnfv_tests/openstack/tempest/tempest.py @@ -14,15 +14,14 @@ import shutil import subprocess import time -import opnfv.utils.constants as releng_constants import yaml import conf_utils import functest.core.testcase_base as testcase_base +from functest.utils.constants import CONST import functest.utils.functest_logger as ft_logger import functest.utils.functest_utils as ft_utils import functest.utils.openstack_utils as os_utils -from functest.utils.constants import CONST """ logging configuration """ logger = ft_logger.Logger("Tempest").getLogger() @@ -31,7 +30,7 @@ logger = ft_logger.Logger("Tempest").getLogger() class TempestCommon(testcase_base.TestcaseBase): def __init__(self): - self.case_name = "" + super(TempestCommon, self).__init__() self.MODE = "" self.OPTION = "" self.FLAVOR_ID = None @@ -89,7 +88,7 @@ class TempestCommon(testcase_base.TestcaseBase): CONST.tempest_router_name, CONST.tempest_private_subnet_cidr) if not network_dic: - return releng_constants.EXIT_RUN_ERROR + return testcase_base.TestcaseBase.EX_RUN_ERROR if CONST.tempest_use_custom_images: # adding alternative image should be trivial should we need it @@ -98,7 +97,7 @@ class TempestCommon(testcase_base.TestcaseBase): CONST.openstack_image_name, conf_utils.GLANCE_IMAGE_PATH, CONST.openstack_image_disk_format) if not self.IMAGE_ID: - return releng_constants.EXIT_RUN_ERROR + return testcase_base.TestcaseBase.EX_RUN_ERROR if CONST.tempest_use_custom_flavors: # adding alternative flavor should be trivial should we need it @@ -109,9 +108,9 @@ class TempestCommon(testcase_base.TestcaseBase): CONST.openstack_flavor_disk, CONST.openstack_flavor_vcpus) if not self.FLAVOR_ID: - return releng_constants.EXIT_RUN_ERROR + return testcase_base.TestcaseBase.EX_RUN_ERROR - return releng_constants.EXIT_OK + return testcase_base.TestcaseBase.EX_OK def generate_test_list(self, DEPLOYMENT_DIR): logger.debug("Generating test case list...") @@ -125,7 +124,7 @@ class TempestCommon(testcase_base.TestcaseBase): else: logger.error("Tempest test list file %s NOT found." % conf_utils.TEMPEST_CUSTOM) - return releng_constants.EXIT_RUN_ERROR + return testcase_base.TestcaseBase.EX_RUN_ERROR else: if self.MODE == 'smoke': testr_mode = "smoke" @@ -139,7 +138,7 @@ class TempestCommon(testcase_base.TestcaseBase): testr_mode + ">" + conf_utils.TEMPEST_RAW_LIST + ";cd") ft_utils.execute_command(cmd) - return releng_constants.EXIT_OK + return testcase_base.TestcaseBase.EX_OK def apply_tempest_blacklist(self): logger.debug("Applying tempest blacklist...") @@ -175,30 +174,33 @@ class TempestCommon(testcase_base.TestcaseBase): else: result_file.write(str(cases_line) + '\n') result_file.close() - return releng_constants.EXIT_OK + return testcase_base.TestcaseBase.EX_OK def run(self): + + self.start_time = time.time() + if not os.path.exists(conf_utils.TEMPEST_RESULTS_DIR): os.makedirs(conf_utils.TEMPEST_RESULTS_DIR) # Pre-configuration res = self.create_tempest_resources() - if res != releng_constants.EXIT_OK: + if res != testcase_base.TestcaseBase.EX_OK: return res res = conf_utils.configure_tempest(logger, self.DEPLOYMENT_DIR, self.IMAGE_ID, self.FLAVOR_ID) - if res != releng_constants.EXIT_OK: + if res != testcase_base.TestcaseBase.EX_OK: return res res = self.generate_test_list(self.DEPLOYMENT_DIR) - if res != releng_constants.EXIT_OK: + if res != testcase_base.TestcaseBase.EX_OK: return res res = self.apply_tempest_blacklist() - if res != releng_constants.EXIT_OK: + if res != testcase_base.TestcaseBase.EX_OK: return res self.OPTION += (" --tests-file %s " % conf_utils.TEMPEST_LIST) @@ -271,23 +273,17 @@ class TempestCommon(testcase_base.TestcaseBase): except: success_rate = 0 - if 'smoke' in self.MODE: - self.CASE_NAME = 'tempest_smoke_serial' - elif 'feature' in self.MODE: - self.CASE_NAME = self.MODE.replace( - "feature_", "") - else: - self.CASE_NAME = 'tempest_full_parallel' - - status = ft_utils.check_success_rate( - self.CASE_NAME, success_rate) + self.criteria = ft_utils.check_success_rate( + self.case_name, success_rate) logger.info("Tempest %s success_rate is %s%%, is marked as %s" - % (self.CASE_NAME, success_rate, status)) + % (self.case_name, success_rate, self.criteria)) + + self.stop_time = time.time() - if status == "PASS": - return releng_constants.EXIT_OK + if self.criteria == "PASS": + return testcase_base.TestcaseBase.EX_OK else: - return releng_constants.EXIT_RUN_ERROR + return testcase_base.TestcaseBase.EX_TESTCASE_FAILED class TempestSmokeSerial(TempestCommon): diff --git a/functest/utils/functest_constants.py b/functest/utils/functest_constants.py index e25d6e024..ac9d77c87 100644 --- a/functest/utils/functest_constants.py +++ b/functest/utils/functest_constants.py @@ -103,7 +103,7 @@ ONOS_SFC_RELATIVE_PATH = get_value('general.dir.dir_onos_sfc', 'ONOS_SFC_RELATIVE_PATH') ONOS_SFC_IMAGE_BASE_URL = get_value('onos_sfc.image_base_url', 'ONOS_SFC_IMAGE_BASE_URL') -RALLY_RELATIVE_PATH = get_value('general.dir.dir_rally', +RALLY_RELATIVE_PATH = get_value('general.dir.rally', 'RALLY_RELATIVE_PATH') RALLY_PRIVATE_NET_NAME = get_value('rally.network_name', 'RALLY_PRIVATE_NET_NAME') diff --git a/functest/utils/functest_utils.py b/functest/utils/functest_utils.py index 3145f573c..1879e6943 100644 --- a/functest/utils/functest_utils.py +++ b/functest/utils/functest_utils.py @@ -7,12 +7,14 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 # +import functools import json import os import re import shutil import subprocess import sys +import time import urllib2 from datetime import datetime as dt @@ -21,9 +23,6 @@ import requests import yaml from git import Repo -import time -import functools - import functest.utils.functest_logger as ft_logger logger = ft_logger.Logger("functest_utils").getLogger() |