From 01e261ef7640be1764586a7a6ad67f45596a8a46 Mon Sep 17 00:00:00 2001 From: Nikos Mimigiannis Date: Wed, 31 Oct 2018 11:10:18 +0200 Subject: Migrate SNAPS to Openstack-SDK JIRA: SFC-137 This patch replaces SNAPS library with openstack_SDK library for TCs with mano component: no-mano Change-Id: I99b9a5f54a273f61ecff05a11616440d5e85e55b Signed-off-by: Nikos Mimigiannis --- sfc/tests/functest/run_sfc_tests.py | 6 +- sfc/tests/functest/sfc_chain_deletion.py | 9 +- .../sfc_one_chain_two_service_functions.py | 4 +- sfc/tests/functest/sfc_parent_function.py | 96 ++++++++-------------- sfc/tests/functest/sfc_symmetric_chain.py | 8 +- sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py | 9 +- 6 files changed, 54 insertions(+), 78 deletions(-) (limited to 'sfc/tests/functest') diff --git a/sfc/tests/functest/run_sfc_tests.py b/sfc/tests/functest/run_sfc_tests.py index 2f72acb5..c3d68811 100644 --- a/sfc/tests/functest/run_sfc_tests.py +++ b/sfc/tests/functest/run_sfc_tests.py @@ -176,7 +176,8 @@ class SfcFunctest(testcase.TestCase): result = {'status': 'FAILED'} creators = tc_instance.get_creators() if self.cleanup_flag is True: - sfc_cleanup.cleanup(creators, + sfc_cleanup.cleanup(testcase_config, + creators, COMMON_CONFIG.mano_component, odl_ip=odl_ip, odl_port=odl_port) @@ -200,7 +201,8 @@ class SfcFunctest(testcase.TestCase): self.details.update({test_name: dic}) if cleanup_run_flag is not True and self.cleanup_flag is True: - sfc_cleanup.cleanup(creators, + sfc_cleanup.cleanup(testcase_config, + creators, COMMON_CONFIG.mano_component, odl_ip=odl_ip, odl_port=odl_port) diff --git a/sfc/tests/functest/sfc_chain_deletion.py b/sfc/tests/functest/sfc_chain_deletion.py index aa6a1933..dac32143 100644 --- a/sfc/tests/functest/sfc_chain_deletion.py +++ b/sfc/tests/functest/sfc_chain_deletion.py @@ -42,9 +42,8 @@ class SfcChainDeletion(sfc_parent_function.SfcCommonTestCase): t1 = threading.Thread(target=odl_utils.wait_for_classification_rules, args=(self.ovs_logger, self.compute_nodes, self.odl_ip, self.odl_port, - self.client_instance.compute_host, - [self.neutron_client_port],)) - + self.client_instance.hypervisor_hostname, + [self.neutron_port],)) try: t1.start() except Exception as e: @@ -71,8 +70,8 @@ class SfcChainDeletion(sfc_parent_function.SfcCommonTestCase): t2 = threading.Thread(target=odl_utils.wait_for_classification_rules, args=(self.ovs_logger, self.compute_nodes, self.odl_ip, self.odl_port, - self.client_instance.compute_host, - [self.neutron_client_port],)) + self.client_instance.hypervisor_hostname, + [self.neutron_port],)) try: t2.start() except Exception as e: diff --git a/sfc/tests/functest/sfc_one_chain_two_service_functions.py b/sfc/tests/functest/sfc_one_chain_two_service_functions.py index ccae6807..38fa3fef 100644 --- a/sfc/tests/functest/sfc_one_chain_two_service_functions.py +++ b/sfc/tests/functest/sfc_one_chain_two_service_functions.py @@ -45,8 +45,8 @@ class SfcOneChainTwoServiceTC(sfc_parent_function.SfcCommonTestCase): t1 = threading.Thread(target=odl_utils.wait_for_classification_rules, args=(self.ovs_logger, self.compute_nodes, self.odl_ip, self.odl_port, - self.client_instance.compute_host, - [self.neutron_client_port],)) + self.client_instance.hypervisor_hostname, + [self.neutron_port],)) try: t1.start() except Exception as e: diff --git a/sfc/tests/functest/sfc_parent_function.py b/sfc/tests/functest/sfc_parent_function.py index 06ea4982..dab6abc0 100644 --- a/sfc/tests/functest/sfc_parent_function.py +++ b/sfc/tests/functest/sfc_parent_function.py @@ -47,16 +47,16 @@ class SfcCommonTestCase(object): self.server_creator = None self.client_instance = None self.client_creator = None - self.server_ip = None self.vnf_id = None self.client_floating_ip = None self.server_floating_ip = None self.fips_sfs = [] - self.neutron_client_port = None - self.neutron_server_port = None self.vnf_objects = dict() self.testcase_config = testcase_config self.vnfs = vnfs + self.port_server = None + self.server_ip = None + self.port_client = None # n-sfc variables self.port_groups = [] @@ -172,25 +172,30 @@ class SfcCommonTestCase(object): logger.info('Topology description: {0}' .format(self.test_topology['description'])) - self.server_instance, self.server_creator = \ + self.server_instance, port_server = \ openstack_sfc.create_instance(SERVER, COMMON_CONFIG.flavor, self.image_creator, self.network, self.sg, self.test_topology['server'], [SERVER + '-port']) + self.port_server = port_server[0] - self.client_instance, self.client_creator = \ + self.client_instance, port_client = \ openstack_sfc.create_instance(CLIENT, COMMON_CONFIG.flavor, self.image_creator, self.network, self.sg, self.test_topology['client'], [CLIENT + '-port']) + self.port_client = port_client[0] + logger.info('This test is run with the topology {0}'.format( self.test_topology['id'])) logger.info('Topology description: {0}'.format( self.test_topology['description'])) - self.server_ip = self.server_instance.ports[0].ips[0]['ip_address'] + port_fixed_ips = self.port_server.fixed_ips + for ip in port_fixed_ips: + self.server_ip = ip.get('ip_address') logger.info("Server instance received private ip [{}]".format( self.server_ip)) @@ -255,7 +260,7 @@ class SfcCommonTestCase(object): ports = [vnf_name + '-port1', vnf_name + '-port2'] else: ports = [vnf_name + '-port'] - vnf_instance, vnf_creator = \ + vnf_instance, vnf_port = \ openstack_sfc.create_instance(vnf_name, COMMON_CONFIG.flavor, self.vnf_image_creator, self.network, @@ -264,25 +269,19 @@ class SfcCommonTestCase(object): ports, port_security=False) - if not openstack_sfc.wait_for_vnf(vnf_creator): - raise Exception('ERROR while booting vnf %s' % vnf_name) - - self.creators.append(vnf_creator) - self.vnf_objects[vnf_name] = [vnf_creator, vnf_instance] + self.vnf_objects[vnf_name] = [vnf_instance, vnf_port] def assign_floating_ip_client_server(self): """Assign floating IPs on the router about server and the client instances - :return: Floating IPs for client and server """ - logger.info("Assigning floating IPs to client and server instances") self.client_floating_ip = openstack_sfc.assign_floating_ip( - self.router, self.client_instance, self.client_creator) + self.client_instance, self.port_client) self.server_floating_ip = openstack_sfc.assign_floating_ip( - self.router, self.server_instance, self.server_creator) + self.server_instance, self.port_server) def assign_floating_ip_sfs(self): """Assign floating IPs to service function @@ -300,11 +299,11 @@ class SfcCommonTestCase(object): vnf_ip) elif COMMON_CONFIG.mano_component == 'no-mano': for vnf in self.vnfs: - # creator object is in [0] and instance in [1] - vnf_instance = self.vnf_objects[vnf][1] - vnf_creator = self.vnf_objects[vnf][0] - sf_floating_ip = openstack_sfc.assign_floating_ip( - self.router, vnf_instance, vnf_creator) + # instance object is in [0] and port in [1] + vnf_instance = self.vnf_objects[vnf][0] + vnf_port = self.vnf_objects[vnf][1] + sf_floating_ip = openstack_sfc.\ + assign_floating_ip(vnf_instance, vnf_port[0]) self.fips_sfs.append(sf_floating_ip) def check_floating_ips(self): @@ -429,14 +428,9 @@ class SfcCommonTestCase(object): tosca_file=tosca_file, vnffgd_name=vnffgd_name) - self.neutron_client_port = \ - openstack_sfc.get_instance_port(self.client_instance, - self.client_creator) + self.neutron_port = self.port_client if symmetric: - self.neutron_server_port = openstack_sfc.get_instance_port( - self.server_instance, - self.server_creator) server_ip_prefix = self.server_ip + '/32' os_sfc_utils.create_vnffg_with_param_file( @@ -444,8 +438,8 @@ class SfcCommonTestCase(object): vnffgd_name, vnffg_name, self.default_param_file, - self.neutron_client_port.id, - server_port=self.neutron_server_port.id, + self.neutron_port.id, + server_port=self.port_server.id, server_ip=server_ip_prefix) else: @@ -454,61 +448,43 @@ class SfcCommonTestCase(object): vnffgd_name, vnffg_name, self.default_param_file, - self.neutron_client_port.id) + self.neutron_port.id) elif COMMON_CONFIG.mano_component == 'no-mano': if not only_chain: for vnf in self.vnfs: - # creator object is in [0] and instance in [1] - vnf_instance = self.vnf_objects[vnf][1] - vnf_creator = self.vnf_objects[vnf][0] + # vnf_instance is in [0] and vnf_port in [1] + vnf_instance = self.vnf_objects[vnf][0] + vnf_port = self.vnf_objects[vnf][1] if symmetric: # VNFs have two ports - p1 = vnf_instance.name + '-port1' - neutron_port1 = \ - openstack_sfc.get_instance_port(vnf_instance, - vnf_creator, - port_name=p1) - p2 = vnf_instance.name + '-port2' - neutron_port2 = \ - openstack_sfc.get_instance_port(vnf_instance, - vnf_creator, - port_name=p2) + neutron_port1 = vnf_port[0] + neutron_port2 = vnf_port[1] neutron_ports = [neutron_port1, neutron_port2] - else: - neutron_port1 = \ - openstack_sfc.get_instance_port(vnf_instance, - vnf_creator) + neutron_port1 = vnf_port[0] neutron_ports = [neutron_port1] port_group = \ openstack_sfc.create_port_groups(neutron_ports, vnf_instance) - self.port_groups.append(port_group) - self.neutron_client_port = \ - openstack_sfc.get_instance_port(self.client_instance, - self.client_creator) + self.neutron_port = self.port_client if symmetric: # We must pass the server_port and server_ip in the symmetric # case. Otherwise ODL does not work well - self.neutron_server_port = openstack_sfc.get_instance_port( - self.server_instance, - self.server_creator) server_ip_prefix = self.server_ip + '/32' - server_port_id = self.neutron_server_port.id openstack_sfc.create_chain(self.port_groups, - self.neutron_client_port.id, + self.neutron_port.id, port, protocol, vnffg_name, symmetric, - server_port=server_port_id, + server_port=self.port_server.id, server_ip=server_ip_prefix) else: openstack_sfc.create_chain(self.port_groups, - self.neutron_client_port.id, + self.neutron_port.id, port, protocol, vnffg_name, symmetric) @@ -590,8 +566,8 @@ class SfcCommonTestCase(object): if not odl_utils.\ check_vnffg_deletion(self.odl_ip, self.odl_port, self.ovs_logger, - [self.neutron_client_port], - self.client_instance.compute_host, + [self.neutron_port], + self.client_instance.hypervisor_hostname, self.compute_nodes): logger.debug("The chains were not correctly removed") raise Exception("Chains not correctly removed, test failed") diff --git a/sfc/tests/functest/sfc_symmetric_chain.py b/sfc/tests/functest/sfc_symmetric_chain.py index 7df938e3..cec45219 100644 --- a/sfc/tests/functest/sfc_symmetric_chain.py +++ b/sfc/tests/functest/sfc_symmetric_chain.py @@ -50,10 +50,10 @@ class SfcSymmetricChain(sfc_parent_function.SfcCommonTestCase): # rules t1 = threading.Thread(target=symmetric_wait_for_classification_rules, args=(self.ovs_logger, self.compute_nodes, - self.server_instance.compute_host, - self.neutron_server_port, - self.client_instance.compute_host, - self.neutron_client_port, + self.server_instance.hypervisor_hostname, + self.port_server, + self.client_instance.hypervisor_hostname, + self.port_client, self.odl_ip, self.odl_port,)) try: t1.start() 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 e2037a41..0cfbea22 100644 --- a/sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py +++ b/sfc/tests/functest/sfc_two_chains_SSH_and_HTTP.py @@ -46,9 +46,8 @@ class SfcTwoChainsSSHandHTTP(sfc_parent_function.SfcCommonTestCase): t1 = threading.Thread(target=odl_utils.wait_for_classification_rules, args=(self.ovs_logger, self.compute_nodes, self.odl_ip, self.odl_port, - self.client_instance.compute_host, - [self.neutron_client_port],)) - + self.client_instance.hypervisor_hostname, + [self.neutron_port],)) try: t1.start() except Exception as e: @@ -82,8 +81,8 @@ class SfcTwoChainsSSHandHTTP(sfc_parent_function.SfcCommonTestCase): t2 = threading.Thread(target=odl_utils.wait_for_classification_rules, args=(self.ovs_logger, self.compute_nodes, self.odl_ip, self.odl_port, - self.client_instance.compute_host, - self.neutron_client_port,)) + self.client_instance.hypervisor_hostname, + self.neutron_port,)) try: t2.start() except Exception as e: -- cgit 1.2.3-korg