diff options
Diffstat (limited to 'testcases/VIM/OpenStack')
-rw-r--r-- | testcases/VIM/OpenStack/CI/libraries/clean_openstack.py | 27 | ||||
-rwxr-xr-x | testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py | 54 | ||||
-rw-r--r-- | testcases/VIM/OpenStack/CI/libraries/run_tempest.py | 20 |
3 files changed, 80 insertions, 21 deletions
diff --git a/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py b/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py index 8a49843d5..464defcc9 100644 --- a/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py +++ b/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py @@ -91,7 +91,7 @@ def remove_instances(nova_client): if functest_utils.delete_instance(nova_client, instance_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "instance %s..." % instance_id) timeout = 50 @@ -121,7 +121,7 @@ def remove_images(nova_client): if functest_utils.delete_glance_image(nova_client, image_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the" + logger.error("There has been a problem removing the" "image %s..." % image_id) else: logger.debug(" > this is a default image and will NOT be deleted.") @@ -146,7 +146,7 @@ def remove_volumes(cinder_client): forced=True): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "volume %s..." % volume_id) @@ -163,7 +163,7 @@ def remove_floatingips(nova_client): if functest_utils.delete_floating_ip(nova_client, fip_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "floating IP %s..." % fip_id) timeout = 50 @@ -218,7 +218,7 @@ def remove_networks(neutron_client): if functest_utils.delete_neutron_net(neutron_client, net_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "network %s..." % net_id) @@ -237,7 +237,7 @@ def remove_ports(neutron_client, ports, network_ids): if functest_utils.delete_neutron_port(neutron_client, port_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "port %s ..." %port_id) force_remove_port(neutron_client, port_id) @@ -249,7 +249,7 @@ def remove_ports(neutron_client, ports, network_ids): time.sleep(5) # leave 5 seconds to detach before doing anything else logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "interface %s from router %s..." %(subnet_id,router_id)) force_remove_port(neutron_client, port_id) else: @@ -265,7 +265,8 @@ def force_remove_port(neutron_client, port_id): if functest_utils.delete_neutron_port(neutron_client, port_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: Deleting port %s failed" % port_id) + logger.error("There has been a problem removing " + "the port %s..." % port_id) def remove_routers(neutron_client, routers): @@ -279,7 +280,7 @@ def remove_routers(neutron_client, routers): if functest_utils.remove_gateway_router(neutron_client, router_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing " + logger.error("There has been a problem removing " "the gateway...") else: logger.debug("Router is not connected to anything. Ready to remove...") @@ -287,7 +288,7 @@ def remove_routers(neutron_client, routers): if functest_utils.delete_neutron_router(neutron_client, router_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "router '%s'(%s)..." % (router_name, router_id)) @@ -307,7 +308,7 @@ def remove_security_groups(neutron_client): if functest_utils.delete_security_group(neutron_client, secgroup_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "security group %s..." % secgroup_id) else: logger.debug(" > this is a default security group and will NOT " @@ -330,7 +331,7 @@ def remove_users(keystone_client): if functest_utils.delete_user(keystone_client,user_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "user '%s'(%s)..." % (user_name,user_id)) else: logger.debug(" > this is a default user and will NOT be deleted.") @@ -352,7 +353,7 @@ def remove_tenants(keystone_client): if functest_utils.delete_tenant(keystone_client,tenant_id): logger.debug(" > Done!") else: - logger.info(" > ERROR: There has been a problem removing the " + logger.error("There has been a problem removing the " "tenant '%s'(%s)..." % (tenant_name,tenant_id)) else: logger.debug(" > this is a default tenant and will NOT be deleted.") diff --git a/testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py b/testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py index d2128d9ac..d2ac62ac1 100755 --- a/testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py +++ b/testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py @@ -27,6 +27,7 @@ from novaclient import client as novaclient from glanceclient import client as glanceclient from keystoneclient.v2_0 import client as keystoneclient from neutronclient.v2_0 import client as neutronclient +from cinderclient import client as cinderclient """ tests configuration """ tests = ['authenticate', 'glance', 'cinder', 'heat', 'keystone', @@ -119,6 +120,8 @@ GLANCE_IMAGE_FORMAT = functest_yaml.get("general"). \ GLANCE_IMAGE_PATH = functest_yaml.get("general"). \ get("directories").get("dir_functest_data") + "/" + GLANCE_IMAGE_FILENAME +CINDER_VOLUME_TYPE_NAME = "volume_test" + def push_results_to_db(payload): @@ -218,10 +221,22 @@ def run_task(test_name): p = subprocess.Popen(cmd_line, stdout=subprocess.PIPE, stderr=RALLY_STDERR, shell=True) result = "" while p.poll() is None: - l = p.stdout.readline() - print l.replace('\n', '') - result += l - + #l = p.stdout.readline() + #line = l.replace('\n', '') + line = p.stdout.readline() + if "Load duration" in line or \ + "started" in line or \ + "finished" in line or \ + " Preparing" in line or \ + "+-" in line or \ + "|" in line: + result += line + elif "test scenario" in line: + result += "\n" + line + elif "Full duration" in line: + result += line + "\n\n" + + logger.info("\n" + result) task_id = get_task_id(result) logger.debug('task_id : {}'.format(task_id)) @@ -262,9 +277,9 @@ def run_task(test_name): """ parse JSON operation result """ if task_succeed(json_results): - print 'Test OK' + logger.info("Test OK.") else: - print 'Test KO' + logger.info("Test Failed.") def main(): @@ -283,9 +298,28 @@ def main(): endpoint_type='publicURL') glance_client = glanceclient.Client(1, glance_endpoint, token=keystone_client.auth_token) + creds_cinder = functest_utils.get_credentials("cinder") + cinder_client = cinderclient.Client('2',creds_cinder['username'], + creds_cinder['api_key'], + creds_cinder['project_id'], + creds_cinder['auth_url'], + service_type="volume") client_dict['neutron'] = neutron_client + volume_types = functest_utils.list_volume_types(cinder_client, private=False) + if not volume_types: + volume_type = functest_utils.create_volume_type(cinder_client, \ + CINDER_VOLUME_TYPE_NAME) + if not volume_type: + logger.error("Failed to create volume type...") + exit(-1) + else: + logger.debug("Volume type '%s' created succesfully..." \ + % CINDER_VOLUME_TYPE_NAME) + else: + logger.debug("Using existing volume type(s)...") + image_id = functest_utils.get_image_id(glance_client, GLANCE_IMAGE_NAME) if image_id == '': @@ -307,7 +341,6 @@ def main(): for test_name in tests: if not (test_name == 'all' or test_name == 'vm'): - print(test_name) run_task(test_name) else: print(args.test_name) @@ -318,5 +351,12 @@ def main(): if not functest_utils.delete_glance_image(nova_client, image_id): logger.error("Error deleting the glance image") + if not volume_types: + logger.debug("Deleting volume type '%s'..." \ + % CINDER_VOLUME_TYPE_NAME) + if not functest_utils.delete_volume_type(cinder_client, volume_type): + logger.error("Error in deleting volume type...") + + if __name__ == '__main__': main() diff --git a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py index ee0a4bea8..0097a567b 100644 --- a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py +++ b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py @@ -73,6 +73,8 @@ USER_NAME = functest_yaml.get("tempest").get("identity").get("user_name") USER_PASSWORD = functest_yaml.get("tempest").get("identity").get("user_password") DEPLOYMENT_MAME = functest_yaml.get("rally").get("deployment_name") RALLY_INSTALLATION_DIR = functest_yaml.get("general").get("directories").get("dir_rally_inst") +RESULTS_DIR = functest_yaml.get("general").get("directories").get("dir_results") +TEMPEST_RESULTS_DIR = RESULTS_DIR + '/tempest' def get_info(file_result): @@ -211,7 +213,23 @@ def run_tempest(OPTION): logger.info("Starting Tempest test suite: '%s'." % OPTION) cmd_line = "rally verify start "+OPTION logger.debug('Executing command : {}'.format(cmd_line)) - subprocess.call(cmd_line, shell=True, stderr=subprocess.STDOUT) + + CI_DEBUG = os.environ.get("CI_DEBUG") + if CI_DEBUG == "true" or CI_DEBUG == "True": + subprocess.call(cmd_line, shell=True, stderr=subprocess.STDOUT) + else: + if not os.path.exists(TEMPEST_RESULTS_DIR): + os.makedirs(TEMPEST_RESULTS_DIR) + + f = open(TEMPEST_RESULTS_DIR+"/tempest.log", 'w+') + FNULL = open(os.devnull, 'w') + + subprocess.call(cmd_line, shell=True, stdout=FNULL, stderr=f) + f.close() + FNULL.close() + + cmd_line = "rally verify show" + subprocess.call(cmd_line, shell=True) cmd_line = "rally verify list" logger.debug('Executing command : {}'.format(cmd_line)) |