summaryrefslogtreecommitdiffstats
path: root/sfc/tests/functest/sfc_symmetric_chain.py
diff options
context:
space:
mode:
authorManuel Buil <mbuil@suse.com>2017-12-14 12:13:19 +0100
committerManuel Buil <mbuil@suse.com>2017-12-21 17:28:32 +0100
commitdeca6d35cd4ba0c6444b92d15b07ade1169d0ef3 (patch)
tree36abacae739f5c6bb494c2502b6ad3e37446d676 /sfc/tests/functest/sfc_symmetric_chain.py
parent163aacce943bf07a5603587b9ae681ff9bf4605b (diff)
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<mbuil@suse.com>
Diffstat (limited to 'sfc/tests/functest/sfc_symmetric_chain.py')
-rw-r--r--sfc/tests/functest/sfc_symmetric_chain.py104
1 files changed, 44 insertions, 60 deletions
diff --git a/sfc/tests/functest/sfc_symmetric_chain.py b/sfc/tests/functest/sfc_symmetric_chain.py
index 75ea43f1..b8d35514 100644
--- a/sfc/tests/functest/sfc_symmetric_chain.py
+++ b/sfc/tests/functest/sfc_symmetric_chain.py
@@ -14,8 +14,8 @@ import sys
import threading
import logging
-import sfc.lib.openstack_utils as os_tacker
-import functest.utils.openstack_utils as os_utils
+import sfc.lib.openstack_utils as os_sfc_utils
+import sfc.lib.odl_utils as odl_utils
import opnfv.utils.ovs_logger as ovs_log
from opnfv.deployment.factory import Factory as DeploymentFactory
@@ -49,26 +49,23 @@ def main():
controller_nodes = [node for node in all_nodes if node.is_controller()]
compute_nodes = [node for node in all_nodes if node.is_compute()]
- odl_ip, odl_port = test_utils.get_odl_ip_port(all_nodes)
+ odl_ip, odl_port = odl_utils.get_odl_ip_port(all_nodes)
results = Results(COMMON_CONFIG.line_length)
results.add_to_summary(0, "=")
results.add_to_summary(2, "STATUS", "SUBTEST")
results.add_to_summary(0, "=")
- test_utils.download_image(COMMON_CONFIG.url, COMMON_CONFIG.image_path)
+ openstack_sfc = os_sfc_utils.OpenStackSFC()
- neutron_client = os_utils.get_neutron_client()
- nova_client = os_utils.get_nova_client()
- tacker_client = os_tacker.get_tacker_client()
+ tacker_client = os_sfc_utils.get_tacker_client()
- _, custom_flavor_id = os_utils.get_or_create_flavor(
+ _, custom_flavor = openstack_sfc.get_or_create_flavor(
COMMON_CONFIG.flavor,
COMMON_CONFIG.ram_size_in_mb,
COMMON_CONFIG.disk_size_in_gb,
- COMMON_CONFIG.vcpu_count,
- public=True)
- if custom_flavor_id is None:
+ COMMON_CONFIG.vcpu_count)
+ if custom_flavor is None:
logger.error("Failed to create custom flavor")
sys.exit(1)
@@ -79,52 +76,38 @@ def main():
os.path.join(COMMON_CONFIG.sfc_test_dir, 'ovs-logs'),
COMMON_CONFIG.functest_results_dir)
- image_id = os_utils.create_glance_image(
- os_utils.get_glance_client(),
+ image_creator = openstack_sfc.register_glance_image(
COMMON_CONFIG.image_name,
- COMMON_CONFIG.image_path,
+ COMMON_CONFIG.image_url,
COMMON_CONFIG.image_format,
- public='public')
+ 'public')
- network_id = test_utils.setup_neutron(
- neutron_client,
+ network, router = openstack_sfc.create_network_infrastructure(
TESTCASE_CONFIG.net_name,
TESTCASE_CONFIG.subnet_name,
- TESTCASE_CONFIG.router_name,
- TESTCASE_CONFIG.subnet_cidr)
+ TESTCASE_CONFIG.subnet_cidr,
+ TESTCASE_CONFIG.router_name)
- sg_id = test_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_name = 'testVNF1'
# Using seed=0 uses the baseline topology: everything in the same host
- testTopology = topo_shuffler.topology([vnf_name], seed=0)
+ testTopology = topo_shuffler.topology([vnf_name], openstack_sfc, seed=0)
logger.info('This test is run with the topology {0}'
.format(testTopology['id']))
logger.info('Topology description: {0}'
.format(testTopology['description']))
- client_instance = test_utils.create_instance(
- nova_client,
- CLIENT,
- COMMON_CONFIG.flavor,
- image_id,
- network_id,
- sg_id,
- av_zone=testTopology[CLIENT])
-
- server_instance = test_utils.create_instance(
- nova_client,
- SERVER,
- COMMON_CONFIG.flavor,
- image_id,
- network_id,
- sg_id,
- av_zone=testTopology[SERVER])
+ client_instance, client_creator = openstack_sfc.create_instance(
+ CLIENT, COMMON_CONFIG.flavor, image_creator, network, sg,
+ av_zone=testTopology['client'])
- server_ip = server_instance.networks.get(TESTCASE_CONFIG.net_name)[0]
+ server_instance, server_creator = openstack_sfc.create_instance(
+ SERVER, COMMON_CONFIG.flavor, image_creator, network, sg,
+ av_zone=testTopology['server'])
+
+ server_ip = server_instance.ports[0].ips[0]['ip_address']
+ logger.info("Server instance received private ip [{}]".format(server_ip))
tosca_file = os.path.join(
COMMON_CONFIG.sfc_test_dir,
@@ -136,7 +119,7 @@ def main():
COMMON_CONFIG.vnfd_dir,
COMMON_CONFIG.vnfd_default_params_file)
- os_tacker.create_vnfd(tacker_client, tosca_file=tosca_file)
+ os_sfc_utils.create_vnfd(tacker_client, tosca_file=tosca_file)
test_utils.create_vnf_in_av_zone(
tacker_client,
vnf_name,
@@ -144,21 +127,18 @@ def main():
default_param_file,
testTopology[vnf_name])
- vnf_id = os_tacker.wait_for_vnf(tacker_client, vnf_name=vnf_name)
+ vnf_id = os_sfc_utils.wait_for_vnf(tacker_client, vnf_name=vnf_name)
if vnf_id is None:
logger.error('ERROR while booting VNF')
sys.exit(1)
- vnf_instance_id = test_utils.get_nova_id(tacker_client, 'vdu1', vnf_id)
- os_utils.add_secgroup_to_instance(nova_client, vnf_instance_id, sg_id)
-
- os_tacker.create_sfc(
+ os_sfc_utils.create_sfc(
tacker_client,
sfc_name='red',
chain_vnf_names=[vnf_name],
symmetrical=True)
- os_tacker.create_sfc_classifier(
+ os_sfc_utils.create_sfc_classifier(
tacker_client, 'red_http', sfc_name='red',
match={
'source_port': 0,
@@ -169,7 +149,7 @@ def main():
# FIXME: JIRA SFC-86
# Tacker does not allow to specify the direction of the chain to be used,
# only references the SFP (which for symmetric chains results in two RSPs)
- os_tacker.create_sfc_classifier(
+ os_sfc_utils.create_sfc_classifier(
tacker_client, 'red_http_reverse', sfc_name='red',
match={
'source_port': 80,
@@ -181,7 +161,7 @@ def main():
logger.info(test_utils.run_cmd('tacker sfc-classifier-list'))
# Start measuring the time it takes to implement the classification rules
- t1 = threading.Thread(target=test_utils.wait_for_classification_rules,
+ t1 = threading.Thread(target=odl_utils.wait_for_classification_rules,
args=(ovs_logger, compute_nodes, odl_ip, odl_port,))
try:
@@ -190,14 +170,18 @@ def main():
logger.error("Unable to start the thread that counts time %s" % e)
logger.info("Assigning floating IPs to instances")
- server_floating_ip = test_utils.assign_floating_ip(
- nova_client, neutron_client, server_instance.id)
- client_floating_ip = test_utils.assign_floating_ip(
- nova_client, neutron_client, client_instance.id)
- sf_floating_ip = test_utils.assign_floating_ip(
- nova_client, neutron_client, vnf_instance_id)
-
- for ip in (server_floating_ip, client_floating_ip, sf_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)
+ sf_floating_ip = fips_sfs[0]
+
+ fips = [client_floating_ip, server_floating_ip, fips_sfs[0]]
+
+ 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)
@@ -243,7 +227,7 @@ def main():
ovs_logger, controller_clients, compute_clients, error)
results.add_to_summary(2, "FAIL", "HTTP Blocked")
- return results.compile_summary()
+ return results.compile_summary(), openstack_sfc.creators
if __name__ == '__main__':