diff options
-rw-r--r-- | ci/config_functest.yaml | 27 | ||||
-rw-r--r-- | testcases/OpenStack/rally/blacklist.txt | 7 | ||||
-rwxr-xr-x | testcases/OpenStack/rally/run_rally-cert.py | 69 | ||||
-rw-r--r-- | testcases/OpenStack/rally/task.yaml | 20 | ||||
-rwxr-xr-x | testcases/features/promise.py | 75 |
5 files changed, 130 insertions, 68 deletions
diff --git a/ci/config_functest.yaml b/ci/config_functest.yaml index 2b3317a1..12e78d6d 100644 --- a/ci/config_functest.yaml +++ b/ci/config_functest.yaml @@ -162,20 +162,19 @@ multisite: installer_password: 'root' multisite_controller_ip: '10.1.0.50' promise: - general: - tenant_name: promise - tenant_description: promise Functionality Testing - user_name: promiser - user_pwd: test - image_name: promise-img - flavor_name: promise-flavor - flavor_vcpus: 1 - flavor_ram: 128 - flavor_disk: 0 - network_name: promise-net - subnet_name: promise-subnet - subnet_cidr: 192.168.121.0/24 - router_name: promise-router + tenant_name: promise + tenant_description: promise Functionality Testing + user_name: promiser + user_pwd: test + image_name: promise-img + flavor_name: promise-flavor + flavor_vcpus: 1 + flavor_ram: 128 + flavor_disk: 0 + network_name: promise-net + subnet_name: promise-subnet + subnet_cidr: 192.168.121.0/24 + router_name: promise-router example: example_vm_name: example-vm diff --git a/testcases/OpenStack/rally/blacklist.txt b/testcases/OpenStack/rally/blacklist.txt new file mode 100644 index 00000000..e1c83f5b --- /dev/null +++ b/testcases/OpenStack/rally/blacklist.txt @@ -0,0 +1,7 @@ +- + scenarios: + - + installers: + - + tests: + - diff --git a/testcases/OpenStack/rally/run_rally-cert.py b/testcases/OpenStack/rally/run_rally-cert.py index 85d21d9b..f1218545 100755 --- a/testcases/OpenStack/rally/run_rally-cert.py +++ b/testcases/OpenStack/rally/run_rally-cert.py @@ -20,6 +20,7 @@ import os import re import subprocess import time +import yaml import argparse import functest.utils.functest_logger as ft_logger @@ -78,6 +79,8 @@ RALLY_DIR = REPO_PATH + '/' + functest_yaml.get("general").get( "directories").get("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 @@ -269,6 +272,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 +345,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) + 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 %} diff --git a/testcases/features/promise.py b/testcases/features/promise.py index 47e360ca..a7899fec 100755 --- a/testcases/features/promise.py +++ b/testcases/features/promise.py @@ -9,18 +9,19 @@ # # Maintainer : jose.lausuch@ericsson.com # +import argparse import json import os import subprocess import time -import argparse 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 openstack_utils import keystoneclient.v2_0.client as ksclient -import novaclient.client as nvclient from neutronclient.v2_0 import client as ntclient +import novaclient.client as nvclient + parser = argparse.ArgumentParser() @@ -30,35 +31,35 @@ parser.add_argument("-r", "--report", action="store_true") args = parser.parse_args() -functest_yaml = functest_utils.get_functest_yaml() -dirs = functest_yaml.get('general').get('directories') +dirs = ft_utils.get_parameter_from_yaml('general.directories') PROMISE_REPO = dirs.get('dir_repo_promise') -TEST_DB = functest_yaml.get('results').get('test_db_url') - -TENANT_NAME = functest_yaml.get('promise').get('general').get('tenant_name') -TENANT_DESCRIPTION = functest_yaml.get('promise').get( - 'general').get('tenant_description') -USER_NAME = functest_yaml.get('promise').get('general').get('user_name') -USER_PWD = functest_yaml.get('promise').get('general').get('user_pwd') -IMAGE_NAME = functest_yaml.get('promise').get('general').get('image_name') -FLAVOR_NAME = functest_yaml.get('promise').get('general').get('flavor_name') -FLAVOR_VCPUS = functest_yaml.get('promise').get('general').get('flavor_vcpus') -FLAVOR_RAM = functest_yaml.get('promise').get('general').get('flavor_ram') -FLAVOR_DISK = functest_yaml.get('promise').get('general').get('flavor_disk') - - -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 - -NET_NAME = functest_yaml.get('promise').get('general').get('network_name') -SUBNET_NAME = functest_yaml.get('promise').get('general').get('subnet_name') -SUBNET_CIDR = functest_yaml.get('promise').get('general').get('subnet_cidr') -ROUTER_NAME = functest_yaml.get('promise').get('general').get('router_name') +RESULTS_DIR = ft_utils.get_parameter_from_yaml( + 'general.directories.dir_results') + +TENANT_NAME = ft_utils.get_parameter_from_yaml('promise.tenant_name') +TENANT_DESCRIPTION = ft_utils.get_parameter_from_yaml( + 'promise.tenant_description') +USER_NAME = ft_utils.get_parameter_from_yaml('promise.user_name') +USER_PWD = ft_utils.get_parameter_from_yaml('promise.user_pwd') +IMAGE_NAME = ft_utils.get_parameter_from_yaml('promise.image_name') +FLAVOR_NAME = ft_utils.get_parameter_from_yaml('promise.flavor_name') +FLAVOR_VCPUS = ft_utils.get_parameter_from_yaml('promise.flavor_vcpus') +FLAVOR_RAM = ft_utils.get_parameter_from_yaml('promise.flavor_ram') +FLAVOR_DISK = ft_utils.get_parameter_from_yaml('promise.flavor_disk') + + +GLANCE_IMAGE_FILENAME = ft_utils.get_parameter_from_yaml( + 'general.openstack.image_file_name') +GLANCE_IMAGE_FORMAT = ft_utils.get_parameter_from_yaml( + 'general.openstack.image_disk_format') +GLANCE_IMAGE_PATH = ft_utils.get_parameter_from_yaml( + 'general.directories.dir_functest_data') + "/" + GLANCE_IMAGE_FILENAME + +NET_NAME = ft_utils.get_parameter_from_yaml('promise.network_name') +SUBNET_NAME = ft_utils.get_parameter_from_yaml('promise.subnet_name') +SUBNET_CIDR = ft_utils.get_parameter_from_yaml('promise.subnet_cidr') +ROUTER_NAME = ft_utils.get_parameter_from_yaml('promise.router_name') """ logging configuration """ @@ -182,7 +183,7 @@ def main(): os.chdir(PROMISE_REPO) results_file_name = 'promise-results.json' - results_file = open(results_file_name, 'w+') + results_file = open(RESULTS_DIR + '/' + results_file_name, 'w+') cmd = 'npm run -s test -- --reporter json' logger.info("Running command: %s" % cmd) @@ -240,12 +241,12 @@ def main(): status = "PASS" exit_code = 0 - functest_utils.push_results_to_db("promise", - "promise", - start_time, - stop_time, - status, - json_results) + ft_utils.push_results_to_db("promise", + "promise", + start_time, + stop_time, + status, + json_results) exit(exit_code) |