diff options
Diffstat (limited to 'testcases/OpenStack/rally')
-rw-r--r-- | testcases/OpenStack/rally/blacklist.txt | 26 | ||||
-rwxr-xr-x | testcases/OpenStack/rally/run_rally-cert.py | 92 | ||||
-rw-r--r-- | testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml | 4 | ||||
-rw-r--r-- | testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml | 4 |
4 files changed, 88 insertions, 38 deletions
diff --git a/testcases/OpenStack/rally/blacklist.txt b/testcases/OpenStack/rally/blacklist.txt index 02d85f4d8..3a17fa616 100644 --- a/testcases/OpenStack/rally/blacklist.txt +++ b/testcases/OpenStack/rally/blacklist.txt @@ -1,8 +1,18 @@ -- - scenarios: - - os-nosdn-lxd-ha - - os-nosdn-lxd-noha - installers: - - joid - tests: - - NovaServers.boot_server_from_volume_and_delete +scenario: + - + scenarios: + - os-nosdn-lxd-ha + - os-nosdn-lxd-noha + installers: + - joid + tests: + - NovaServers.boot_server_from_volume_and_delete + +functionality: + - + functions: + - no_live_migration + tests: + - NovaServers.boot_and_live_migrate_server + - NovaServers.boot_server_attach_created_volume_and_live_migrate + - NovaServers.boot_server_from_volume_and_live_migrate diff --git a/testcases/OpenStack/rally/run_rally-cert.py b/testcases/OpenStack/rally/run_rally-cert.py index d35639cc8..8b8adce40 100755 --- a/testcases/OpenStack/rally/run_rally-cert.py +++ b/testcases/OpenStack/rally/run_rally-cert.py @@ -187,7 +187,6 @@ def build_task_args(test_file_name): net_id = network_dict['net_id'] task_args['netid'] = str(net_id) - task_args['live_migration'] = live_migration_supported() auth_url = os.getenv('OS_AUTH_URL') if auth_url is not None: @@ -273,36 +272,66 @@ 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') +def excl_scenario(): black_tests = [] try: + with open(BLACKLIST_FILE, 'r') as black_list_file: + black_list_yaml = yaml.safe_load(black_list_file) + 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) + if 'scenario' in black_list_yaml.keys(): + for item in black_list_yaml['scenario']: + 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.") + logger.debug("Scenario exclusion not applied.") + + return black_tests + + +def excl_func(): + black_tests = [] + func_list = [] + + try: + with open(BLACKLIST_FILE, 'r') as black_list_file: + black_list_yaml = yaml.safe_load(black_list_file) + + if not live_migration_supported(): + func_list.append("no_live_migration") + + if 'functionality' in black_list_yaml.keys(): + for item in black_list_yaml['functionality']: + functions = item['functions'] + for func in func_list: + if func in functions: + tests = item['tests'] + black_tests.extend(tests) + except: + logger.debug("Functionality exclusion not applied.") + + return black_tests + + +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 = list(set(excl_func() + excl_scenario())) 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(':'): + if re.search(black_tests_line, cases_line.strip().rstrip(':')): include = False break else: @@ -337,6 +366,17 @@ def prepare_test_list(test_name): os.makedirs(TEMP_DIR) apply_blacklist(scenario_file_name, test_file_name) + return test_file_name + + +def file_is_empty(file_name): + try: + if os.stat(file_name).st_size > 0: + return False + except: + pass + + return True def run_task(test_name): @@ -354,7 +394,10 @@ def run_task(test_name): logger.error("Task file '%s' does not exist." % task_file) exit(-1) - prepare_test_list(test_name) + file_name = prepare_test_list(test_name) + if file_is_empty(file_name): + logger.info('No tests for scenario "{}"'.format(test_name)) + return cmd_line = ("rally task start --abort-on-sla-failure " + "--task {} ".format(task_file) + @@ -381,7 +424,7 @@ def run_task(test_name): # check for result directory and create it otherwise if not os.path.exists(RESULTS_DIR): - logger.debug('%s does not exist, we create it.'.format(RESULTS_DIR)) + logger.debug('{} does not exist, we create it.'.format(RESULTS_DIR)) os.makedirs(RESULTS_DIR) # write html report file @@ -521,7 +564,12 @@ def main(): total_duration_str = time.strftime("%H:%M:%S", time.gmtime(total_duration)) total_duration_str2 = "{0:<10}".format(total_duration_str) total_nb_tests_str = "{0:<13}".format(total_nb_tests) - success_rate = "{:0.2f}".format(total_success / len(SUMMARY)) + + if len(SUMMARY): + success_rate = total_success / len(SUMMARY) + else: + success_rate = 100 + success_rate = "{:0.2f}".format(success_rate) success_rate_str = "{0:<10}".format(str(success_rate) + '%') report += "+===================+============+===============+===========+" report += "\n" diff --git a/testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml b/testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml index 077850f53..d7622093d 100644 --- a/testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml +++ b/testcases/OpenStack/rally/scenario/full/opnfv-nova.yaml @@ -227,8 +227,6 @@ sla: {{ no_failures_sla() }} -{% if live_migration %} - NovaServers.boot_and_live_migrate_server: - args: {{ vm_params(image_name, flavor_name) }} @@ -273,8 +271,6 @@ sla: {{ no_failures_sla() }} -{% endif %} - NovaKeypair.boot_and_delete_server_with_keypair: - args: diff --git a/testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml b/testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml index 947819dc7..e2795cf71 100644 --- a/testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml +++ b/testcases/OpenStack/rally/scenario/sanity/opnfv-nova.yaml @@ -1,5 +1,3 @@ -{% if live_migration %} - NovaServers.boot_and_live_migrate_server: - args: {{ vm_params(image_name, flavor_name) }} @@ -44,8 +42,6 @@ sla: {{ no_failures_sla() }} -{% endif %} - NovaKeypair.boot_and_delete_server_with_keypair: - args: |