diff options
Diffstat (limited to 'testcases/OpenStack/rally')
-rw-r--r-- | testcases/OpenStack/rally/blacklist.txt | 8 | ||||
-rwxr-xr-x | testcases/OpenStack/rally/run_rally-cert.py | 148 | ||||
-rw-r--r-- | testcases/OpenStack/rally/scenario/opnfv-glance.yaml | 6 | ||||
-rw-r--r-- | testcases/OpenStack/rally/task.yaml | 20 |
4 files changed, 123 insertions, 59 deletions
diff --git a/testcases/OpenStack/rally/blacklist.txt b/testcases/OpenStack/rally/blacklist.txt new file mode 100644 index 00000000..02d85f4d --- /dev/null +++ b/testcases/OpenStack/rally/blacklist.txt @@ -0,0 +1,8 @@ +- + scenarios: + - os-nosdn-lxd-ha + - os-nosdn-lxd-noha + installers: + - joid + tests: + - NovaServers.boot_server_from_volume_and_delete diff --git a/testcases/OpenStack/rally/run_rally-cert.py b/testcases/OpenStack/rally/run_rally-cert.py index 85d21d9b..29fd0a33 100755 --- a/testcases/OpenStack/rally/run_rally-cert.py +++ b/testcases/OpenStack/rally/run_rally-cert.py @@ -22,11 +22,12 @@ import subprocess import time import argparse +import iniparse +import yaml + import functest.utils.functest_logger as ft_logger -import functest.utils.functest_utils as functest_utils +import functest.utils.functest_utils as ft_utils import functest.utils.openstack_utils as os_utils -import iniparse -from functest.utils.functest_utils import FUNCTEST_REPO as REPO_PATH tests = ['authenticate', 'glance', 'cinder', 'heat', 'keystone', 'neutron', 'nova', 'quotas', 'requests', 'vm', 'all'] @@ -71,13 +72,13 @@ else: logger = ft_logger.Logger("run_rally").getLogger() -functest_yaml = functest_utils.get_functest_yaml() - HOME = os.environ['HOME'] + "/" -RALLY_DIR = REPO_PATH + '/' + functest_yaml.get("general").get( - "directories").get("dir_rally") +RALLY_DIR = ft_utils.FUNCTEST_REPO + '/' + \ + ft_utils.get_functest_config('general.directories.dir_rally') TEMPLATE_DIR = RALLY_DIR + "scenario/templates" SUPPORT_DIR = RALLY_DIR + "scenario/support" +TEMP_DIR = RALLY_DIR + "var" +BLACKLIST_FILE = RALLY_DIR + "blacklist.txt" FLAVOR_NAME = "m1.tiny" USERS_AMOUNT = 2 @@ -85,25 +86,27 @@ TENANTS_AMOUNT = 3 ITERATIONS_AMOUNT = 10 CONCURRENCY = 4 -RESULTS_DIR = functest_yaml.get("general").get("directories").get( - "dir_rally_res") -TEMPEST_CONF_FILE = functest_yaml.get("general").get("directories").get( - "dir_results") + '/tempest/tempest.conf' -TEST_DB = functest_yaml.get("results").get("test_db_url") - -PRIVATE_NET_NAME = functest_yaml.get("rally").get("network_name") -PRIVATE_SUBNET_NAME = functest_yaml.get("rally").get("subnet_name") -PRIVATE_SUBNET_CIDR = functest_yaml.get("rally").get("subnet_cidr") -ROUTER_NAME = functest_yaml.get("rally").get("router_name") - -GLANCE_IMAGE_NAME = functest_yaml.get("general").get("openstack").get( - "image_name") -GLANCE_IMAGE_FILENAME = functest_yaml.get("general").get("openstack").get( - "image_file_name") -GLANCE_IMAGE_FORMAT = functest_yaml.get("general").get("openstack").get( - "image_disk_format") -GLANCE_IMAGE_PATH = functest_yaml.get("general").get("directories").get( - "dir_functest_data") + "/" + GLANCE_IMAGE_FILENAME +RESULTS_DIR = \ + ft_utils.get_functest_config('general.directories.dir_rally_res') +TEMPEST_CONF_FILE = \ + ft_utils.get_functest_config('general.directories.dir_results') + \ + '/tempest/tempest.conf' +TEST_DB = ft_utils.get_functest_config('results.test_db_url') + +PRIVATE_NET_NAME = ft_utils.get_functest_config('rally.network_name') +PRIVATE_SUBNET_NAME = ft_utils.get_functest_config('rally.subnet_name') +PRIVATE_SUBNET_CIDR = ft_utils.get_functest_config('rally.subnet_cidr') +ROUTER_NAME = ft_utils.get_functest_config('rally.router_name') + +GLANCE_IMAGE_NAME = \ + ft_utils.get_functest_config('general.openstack.image_name') +GLANCE_IMAGE_FILENAME = \ + ft_utils.get_functest_config('general.openstack.image_file_name') +GLANCE_IMAGE_FORMAT = \ + ft_utils.get_functest_config('general.openstack.image_disk_format') +GLANCE_IMAGE_PATH = \ + ft_utils.get_functest_config('general.directories.dir_functest_data') + \ + "/" + GLANCE_IMAGE_FILENAME CINDER_VOLUME_TYPE_NAME = "volume_test" @@ -160,6 +163,7 @@ def build_task_args(test_file_name): task_args['image_name'] = GLANCE_IMAGE_NAME task_args['flavor_name'] = FLAVOR_NAME task_args['glance_image_location'] = GLANCE_IMAGE_PATH + task_args['glance_image_format'] = GLANCE_IMAGE_FORMAT task_args['tmpl_dir'] = TEMPLATE_DIR task_args['sup_dir'] = SUPPORT_DIR task_args['users_amount'] = USERS_AMOUNT @@ -269,6 +273,64 @@ def get_cmd_output(proc): return result +def apply_blacklist(case_file_name, result_file_name): + logger.debug("Applying blacklist...") + cases_file = open(case_file_name, 'r') + result_file = open(result_file_name, 'w') + black_tests = [] + + try: + installer_type = os.getenv('INSTALLER_TYPE') + deploy_scenario = os.getenv('DEPLOY_SCENARIO') + if (bool(installer_type) * bool(deploy_scenario)): + # if INSTALLER_TYPE and DEPLOY_SCENARIO are set we read the file + with open(BLACKLIST_FILE, 'r') as black_list_file: + black_list_yaml = yaml.safe_load(black_list_file) + + for item in black_list_yaml: + scenarios = item['scenarios'] + installers = item['installers'] + if (deploy_scenario in scenarios and + installer_type in installers): + tests = item['tests'] + black_tests.extend(tests) + except: + black_tests = [] + logger.debug("Blacklisting not applied.") + + include = True + for cases_line in cases_file: + if include: + for black_tests_line in black_tests: + if black_tests_line == cases_line.strip().rstrip(':'): + include = False + break + else: + result_file.write(str(cases_line)) + else: + if cases_line.isspace(): + include = True + + cases_file.close() + result_file.close() + + +def prepare_test_list(test_name): + scenario_file_name = '{}opnfv-{}.yaml'.format(RALLY_DIR + "scenario/", + test_name) + if not os.path.exists(scenario_file_name): + logger.info("The scenario '%s' does not exist." % scenario_file_name) + exit(-1) + + logger.debug('Scenario fetched from : {}'.format(scenario_file_name)) + test_file_name = '{}opnfv-{}.yaml'.format(TEMP_DIR + "/", test_name) + + if not os.path.exists(TEMP_DIR): + os.makedirs(TEMP_DIR) + + apply_blacklist(scenario_file_name, test_file_name) + + def run_task(test_name): # # the "main" function of the script who launch rally for a task @@ -284,13 +346,7 @@ def run_task(test_name): logger.error("Task file '%s' does not exist." % task_file) exit(-1) - test_file_name = '{}opnfv-{}.yaml'.format(RALLY_DIR + "scenario/", - test_name) - if not os.path.exists(test_file_name): - logger.error("The scenario '%s' does not exist." % test_file_name) - exit(-1) - - logger.debug('Scenario fetched from : {}'.format(test_file_name)) + prepare_test_list(test_name) cmd_line = ("rally task start --abort-on-sla-failure " + "--task {} ".format(task_file) + @@ -353,12 +409,12 @@ def run_task(test_name): if args.report: stop_time = time.time() logger.debug("Push Rally detailed results into DB") - functest_utils.push_results_to_db("functest", - "Rally_details", - start_time, - stop_time, - status, - json_data) + ft_utils.push_results_to_db("functest", + "Rally_details", + start_time, + stop_time, + status, + json_data) def main(): @@ -477,7 +533,7 @@ def main(): case_name = "rally_full" # Evaluation of the success criteria - status = functest_utils.check_success_rate(case_name, success_rate) + status = ft_utils.check_success_rate(case_name, success_rate) exit_code = -1 if status == "PASS": @@ -485,12 +541,12 @@ def main(): if args.report: logger.debug("Pushing Rally summary into DB...") - functest_utils.push_results_to_db("functest", - case_name, - start_time, - stop_time, - status, - payload) + ft_utils.push_results_to_db("functest", + case_name, + start_time, + stop_time, + status, + payload) if args.noclean: exit(exit_code) diff --git a/testcases/OpenStack/rally/scenario/opnfv-glance.yaml b/testcases/OpenStack/rally/scenario/opnfv-glance.yaml index adbf8b79..3a67e745 100644 --- a/testcases/OpenStack/rally/scenario/opnfv-glance.yaml +++ b/testcases/OpenStack/rally/scenario/opnfv-glance.yaml @@ -1,7 +1,7 @@ GlanceImages.create_and_delete_image: - args: - {{ glance_args(location=glance_image_location) }} + {{ glance_args(location=glance_image_location, type=glance_image_format) }} context: {{ user_context(tenants_amount, users_amount, use_existing_users) }} runner: @@ -12,7 +12,7 @@ GlanceImages.create_and_list_image: - args: - {{ glance_args(location=glance_image_location) }} + {{ glance_args(location=glance_image_location, type=glance_image_format) }} context: {{ user_context(tenants_amount, users_amount, use_existing_users) }} runner: @@ -32,7 +32,7 @@ GlanceImages.create_image_and_boot_instances: - args: - {{ glance_args(location=glance_image_location) }} + {{ glance_args(location=glance_image_location, type=glance_image_format) }} flavor: name: {{ flavor_name }} number_instances: 2 diff --git a/testcases/OpenStack/rally/task.yaml b/testcases/OpenStack/rally/task.yaml index 3dded7db..c482f120 100644 --- a/testcases/OpenStack/rally/task.yaml +++ b/testcases/OpenStack/rally/task.yaml @@ -8,41 +8,41 @@ --- {% if "authenticate" in service_list %} -{%- include "scenario/opnfv-authenticate.yaml"-%} +{%- include "var/opnfv-authenticate.yaml"-%} {% endif %} {% if "cinder" in service_list %} -{%- include "scenario/opnfv-cinder.yaml"-%} +{%- include "var/opnfv-cinder.yaml"-%} {% endif %} {% if "keystone" in service_list %} -{%- include "scenario/opnfv-keystone.yaml"-%} +{%- include "var/opnfv-keystone.yaml"-%} {% endif %} {% if "nova" in service_list %} -{%- include "scenario/opnfv-nova.yaml"-%} +{%- include "var/opnfv-nova.yaml"-%} {% endif %} {% if "glance" in service_list %} -{%- include "scenario/opnfv-glance.yaml"-%} +{%- include "var/opnfv-glance.yaml"-%} {% endif %} {% if "neutron" in service_list %} -{%- include "scenario/opnfv-neutron.yaml"-%} +{%- include "var/opnfv-neutron.yaml"-%} {% endif %} {% if "quotas" in service_list %} -{%- include "scenario/opnfv-quotas.yaml"-%} +{%- include "var/opnfv-quotas.yaml"-%} {% endif %} {% if "requests" in service_list %} -{%- include "scenario/opnfv-requests.yaml"-%} +{%- include "var/opnfv-requests.yaml"-%} {% endif %} {% if "heat" in service_list %} -{%- include "scenario/opnfv-heat.yaml"-%} +{%- include "var/opnfv-heat.yaml"-%} {% endif %} {% if "vm" in service_list %} -{%- include "scenario/opnfv-vm.yaml"-%} +{%- include "var/opnfv-vm.yaml"-%} {% endif %} |