From deca6d35cd4ba0c6444b92d15b07ade1169d0ef3 Mon Sep 17 00:00:00 2001 From: Manuel Buil Date: Thu, 14 Dec 2017 12:13:19 +0100 Subject: Migrate to SNAPs openstack library Functest is deprecating its openstack library which we were using extensively We need then to move to an alternative and the best appears to be SNAPs Change-Id: Icaa0b9f1ec580545b9d0faa88be2080a310deaf7 Signed-off-by: Manuel Buil --- sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py | 92 +++++++++++------------ 1 file changed, 42 insertions(+), 50 deletions(-) (limited to 'sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py') diff --git a/sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py b/sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py index 5a5645df..d7eb2994 100644 --- a/sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py +++ b/sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py @@ -15,7 +15,6 @@ import logging import sfc.lib.openstack_utils as os_sfc_utils import sfc.lib.odl_utils as odl_utils -import functest.utils.openstack_utils as os_utils import opnfv.utils.ovs_logger as ovs_log import sfc.lib.config as sfc_config @@ -78,20 +77,17 @@ def main(): results.add_to_summary(2, "STATUS", "SUBTEST") results.add_to_summary(0, "=") - test_utils.download_image(COMMON_CONFIG.url, - COMMON_CONFIG.image_path) - _, custom_flv_id = os_utils.get_or_create_flavor( + openstack_sfc = os_sfc_utils.OpenStackSFC() + + custom_flv = openstack_sfc.create_flavor( COMMON_CONFIG.flavor, COMMON_CONFIG.ram_size_in_mb, COMMON_CONFIG.disk_size_in_gb, - COMMON_CONFIG.vcpu_count, public=True) - if not custom_flv_id: + COMMON_CONFIG.vcpu_count) + if not custom_flv: logger.error("Failed to create custom flavor") sys.exit(1) - glance_client = os_utils.get_glance_client() - neutron_client = os_utils.get_neutron_client() - nova_client = os_utils.get_nova_client() tacker_client = os_sfc_utils.get_tacker_client() controller_clients = test_utils.get_ssh_clients(controller_nodes) @@ -101,41 +97,40 @@ def main(): os.path.join(COMMON_CONFIG.sfc_test_dir, 'ovs-logs'), COMMON_CONFIG.functest_results_dir) - image_id = os_utils.create_glance_image(glance_client, - COMMON_CONFIG.image_name, - COMMON_CONFIG.image_path, - COMMON_CONFIG.image_format, - public='public') + image_creator = openstack_sfc.register_glance_image( + COMMON_CONFIG.image_name, + COMMON_CONFIG.image_url, + COMMON_CONFIG.image_format, + 'public') - network_id = os_sfc_utils.setup_neutron(neutron_client, - TESTCASE_CONFIG.net_name, - TESTCASE_CONFIG.subnet_name, - TESTCASE_CONFIG.router_name, - TESTCASE_CONFIG.subnet_cidr) + network, router = openstack_sfc.create_network_infrastructure( + TESTCASE_CONFIG.net_name, + TESTCASE_CONFIG.subnet_name, + TESTCASE_CONFIG.subnet_cidr, + TESTCASE_CONFIG.router_name) - sg_id = os_sfc_utils.create_security_groups(neutron_client, - TESTCASE_CONFIG.secgroup_name, - TESTCASE_CONFIG.secgroup_descr) + sg = openstack_sfc.create_security_group(TESTCASE_CONFIG.secgroup_name) vnf_names = ['testVNF1', 'testVNF2'] topo_seed = topo_shuffler.get_seed() # change to None for nova av zone - testTopology = topo_shuffler.topology(vnf_names, seed=topo_seed) + testTopology = topo_shuffler.topology(vnf_names, openstack_sfc, + seed=topo_seed) logger.info('This test is run with the topology {0}' .format(testTopology['id'])) logger.info('Topology description: {0}' .format(testTopology['description'])) - client_instance = os_sfc_utils.create_instance( - nova_client, CLIENT, COMMON_CONFIG.flavor, image_id, - network_id, sg_id, av_zone=testTopology['client']) + client_instance, client_creator = openstack_sfc.create_instance( + CLIENT, COMMON_CONFIG.flavor, image_creator, network, sg, + av_zone=testTopology['client']) - server_instance = os_sfc_utils.create_instance( - nova_client, SERVER, COMMON_CONFIG.flavor, image_id, - network_id, sg_id, av_zone=testTopology['server']) + server_instance, server_creator = openstack_sfc.create_instance( + SERVER, COMMON_CONFIG.flavor, image_creator, network, sg, + av_zone=testTopology['server']) - server_ip = server_instance.networks.get(TESTCASE_CONFIG.net_name)[0] + server_ip = server_instance.ports[0].ips[0]['ip_address'] os_sfc_utils.register_vim(tacker_client, vim_file=COMMON_CONFIG.vim_file) @@ -172,10 +167,6 @@ def main(): logger.error('ERROR while booting vnfs') sys.exit(1) - vnf1_instance_id = os_sfc_utils.get_nova_id(tacker_client, 'VDU1', vnf1_id) - - vnf2_instance_id = os_sfc_utils.get_nova_id(tacker_client, 'VDU1', vnf2_id) - tosca_file = os.path.join(COMMON_CONFIG.sfc_test_dir, COMMON_CONFIG.vnffgd_dir, TESTCASE_CONFIG.test_vnffgd_red) @@ -184,11 +175,11 @@ def main(): tosca_file=tosca_file, vnffgd_name='red') - neutron_port = os_sfc_utils.get_client_port_id(client_instance) + neutron_port = openstack_sfc.get_client_port_id(client_instance) os_sfc_utils.create_vnffg_with_param_file(tacker_client, 'red', 'red_http', default_param_file, - neutron_port) + neutron_port.id) # Start measuring the time it takes to implement the classification rules t1 = threading.Thread(target=odl_utils.wait_for_classification_rules, @@ -200,19 +191,20 @@ def main(): logger.error("Unable to start the thread that counts time %s" % e) logger.info("Assigning floating IPs to instances") - server_floating_ip = os_sfc_utils.assign_floating_ip( - nova_client, neutron_client, server_instance.id) - client_floating_ip = os_sfc_utils.assign_floating_ip( - nova_client, neutron_client, client_instance.id) - sf1_floating_ip = os_sfc_utils.assign_floating_ip( - nova_client, neutron_client, vnf1_instance_id) - sf2_floating_ip = os_sfc_utils.assign_floating_ip( - nova_client, neutron_client, vnf2_instance_id) - - for ip in (server_floating_ip, - client_floating_ip, - sf1_floating_ip, - sf2_floating_ip): + client_floating_ip = openstack_sfc.assign_floating_ip(router, + client_instance, + client_creator) + server_floating_ip = openstack_sfc.assign_floating_ip(router, + server_instance, + server_creator) + fips_sfs = openstack_sfc.assign_floating_ip_vnfs(router) + sf1_floating_ip = fips_sfs[0] + sf2_floating_ip = fips_sfs[1] + + fips = [client_floating_ip, server_floating_ip, sf1_floating_ip, + sf2_floating_ip] + + for ip in fips: logger.info("Checking connectivity towards floating IP [%s]" % ip) if not test_utils.ping(ip, retries=50, retry_timeout=3): logger.error("Cannot ping floating IP [%s]" % ip) @@ -309,7 +301,7 @@ def main(): ovs_logger, controller_clients, compute_clients, error) results.add_to_summary(2, "FAIL", "SSH works") - return results.compile_summary() + return results.compile_summary(), openstack_sfc.creators if __name__ == '__main__': -- cgit 1.2.3-korg