From 5b2b4922740b2f189b1be2192d8e405fb9a535bb Mon Sep 17 00:00:00 2001 From: George Paraskevopoulos Date: Tue, 8 Nov 2016 14:33:19 +0200 Subject: Refactor config global variables - Create config.py module to handle configuration parsing - Remove globals from testcases Change-Id: I16ed7bb138fde2d5d3c69703e3c2e569d49f0b37 Signed-off-by: George Paraskevopoulos --- test/functest/testcase_1.py | 202 +++++++++++++++++--------------------------- 1 file changed, 76 insertions(+), 126 deletions(-) (limited to 'test/functest/testcase_1.py') diff --git a/test/functest/testcase_1.py b/test/functest/testcase_1.py index aa9bc92..1d19924 100644 --- a/test/functest/testcase_1.py +++ b/test/functest/testcase_1.py @@ -9,14 +9,13 @@ # import argparse -import os from random import randint import functest.utils.functest_logger as ft_logger -import functest.utils.functest_utils as ft_utils import functest.utils.openstack_utils as os_utils import utils as test_utils +import config as sdnvpn_config from results import Results parser = argparse.ArgumentParser() @@ -29,70 +28,12 @@ args = parser.parse_args() logger = ft_logger.Logger("sdnvpn-testcase-1").getLogger() -REPO_PATH = os.environ['repos_dir'] + '/sdnvpn/' - -VM_BOOT_TIMEOUT = 180 - -config_file = REPO_PATH + 'test/functest/config.yaml' - -INSTANCE_1_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.instance_1_name", config_file) -INSTANCE_2_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.instance_2_name", config_file) -INSTANCE_3_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.instance_3_name", config_file) -INSTANCE_4_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.instance_4_name", config_file) -INSTANCE_5_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.instance_5_name", config_file) -IMAGE_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.image_name", config_file) -ROUTE_DISTINGUISHERS = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.route_distinguishers", config_file) - -IMAGE_FILENAME = ft_utils.get_functest_config( - "general.openstack.image_file_name") -IMAGE_FORMAT = ft_utils.get_functest_config( - "general.openstack.image_disk_format") -IMAGE_PATH = ft_utils.get_functest_config( - "general.directories.dir_functest_data") + "/" + IMAGE_FILENAME - -# NEUTRON Private Network parameters - -NET_1_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.net_1_name", config_file) -SUBNET_1_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.subnet_1_name", config_file) -SUBNET_1_CIDR = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.subnet_1_cidr", config_file) -ROUTER_1_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.router_1_name", config_file) -NET_2_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.net_2_name", config_file) -SUBNET_2_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.subnet_2_name", config_file) -SUBNET_2_CIDR = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.subnet_2_cidr", config_file) -ROUTER_2_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.router_2_name", config_file) -SECGROUP_NAME = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.sdnvpn_sg_name", config_file) -SECGROUP_DESCR = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.sdnvpn_sg_descr", config_file) -TARGETS_1 = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.targets1", config_file) -TARGETS_2 = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.targets2", config_file) -SUCCESS_CRITERIA = ft_utils.get_parameter_from_yaml( - "testcases.testcase_1.succes_criteria", config_file) -TEST_DB = ft_utils.get_functest_config("results.test_db_url") - -LINE_LENGTH = 60 +COMMON_CONFIG = sdnvpn_config.CommonConfig() +TESTCASE_CONFIG = sdnvpn_config.TestcaseConfig('testcase_1') def main(): - global LINE_LENGTH - results = Results(LINE_LENGTH) + results = Results(COMMON_CONFIG.line_length) results.add_to_summary(0, "=") results.add_to_summary(2, "STATUS", "SUBTEST") @@ -103,28 +44,29 @@ def main(): glance_client = os_utils.get_glance_client() image_id = os_utils.create_glance_image(glance_client, - IMAGE_NAME, - IMAGE_PATH, - disk=IMAGE_FORMAT, + TESTCASE_CONFIG.image_name, + COMMON_CONFIG.image_path, + disk=COMMON_CONFIG.image_format, container="bare", public=True) network_1_id = test_utils.create_net(neutron_client, - NET_1_NAME) + TESTCASE_CONFIG.net_1_name) test_utils.create_subnet(neutron_client, - SUBNET_1_NAME, - SUBNET_1_CIDR, + TESTCASE_CONFIG.subnet_1_name, + TESTCASE_CONFIG.subnet_1_cidr, network_1_id) network_2_id = test_utils.create_net(neutron_client, - NET_2_NAME) + TESTCASE_CONFIG.net_2_name) test_utils.create_subnet(neutron_client, - SUBNET_2_NAME, - SUBNET_2_CIDR, + TESTCASE_CONFIG.subnet_2_name, + TESTCASE_CONFIG.subnet_2_cidr, network_2_id) sg_id = os_utils.create_security_group_full(neutron_client, - SECGROUP_NAME, SECGROUP_DESCR) + TESTCASE_CONFIG.secgroup_name, + TESTCASE_CONFIG.secgroup_descr) compute_nodes = test_utils.assert_and_get_compute_nodes(nova_client) @@ -132,52 +74,56 @@ def main(): av_zone_2 = "nova:" + compute_nodes[1] # boot INTANCES - vm_2 = test_utils.create_instance(nova_client, - INSTANCE_2_NAME, - image_id, - network_1_id, - sg_id, - secgroup_name=SECGROUP_NAME, - compute_node=av_zone_1) + vm_2 = test_utils.create_instance( + nova_client, + TESTCASE_CONFIG.instance_2_name, + image_id, + network_1_id, + sg_id, + secgroup_name=TESTCASE_CONFIG.secgroup_name, + compute_node=av_zone_1) vm_2_ip = vm_2.networks.itervalues().next()[0] logger.debug("Instance '%s' booted successfully. IP='%s'." % - (INSTANCE_2_NAME, vm_2_ip)) - - vm_3 = test_utils.create_instance(nova_client, - INSTANCE_3_NAME, - image_id, - network_1_id, - sg_id, - secgroup_name=SECGROUP_NAME, - compute_node=av_zone_2) + (TESTCASE_CONFIG.instance_2_name, vm_2_ip)) + + vm_3 = test_utils.create_instance( + nova_client, + TESTCASE_CONFIG.instance_3_name, + image_id, + network_1_id, + sg_id, + secgroup_name=TESTCASE_CONFIG.secgroup_name, + compute_node=av_zone_2) vm_3_ip = vm_3.networks.itervalues().next()[0] logger.debug("Instance '%s' booted successfully. IP='%s'." % - (INSTANCE_3_NAME, vm_3_ip)) - - vm_5 = test_utils.create_instance(nova_client, - INSTANCE_5_NAME, - image_id, - network_2_id, - sg_id, - secgroup_name=SECGROUP_NAME, - compute_node=av_zone_2) + (TESTCASE_CONFIG.instance_3_name, vm_3_ip)) + + vm_5 = test_utils.create_instance( + nova_client, + TESTCASE_CONFIG.instance_5_name, + image_id, + network_2_id, + sg_id, + secgroup_name=TESTCASE_CONFIG.secgroup_name, + compute_node=av_zone_2) vm_5_ip = vm_5.networks.itervalues().next()[0] logger.debug("Instance '%s' booted successfully. IP='%s'." % - (INSTANCE_5_NAME, vm_5_ip)) + (TESTCASE_CONFIG.instance_5_name, vm_5_ip)) # We boot vm5 first because we need vm5_ip for vm4 userdata u4 = test_utils.generate_ping_userdata([vm_5_ip]) - vm_4 = test_utils.create_instance(nova_client, - INSTANCE_4_NAME, - image_id, - network_2_id, - sg_id, - secgroup_name=SECGROUP_NAME, - compute_node=av_zone_1, - userdata=u4) + vm_4 = test_utils.create_instance( + nova_client, + TESTCASE_CONFIG.instance_4_name, + image_id, + network_2_id, + sg_id, + secgroup_name=TESTCASE_CONFIG.secgroup_name, + compute_node=av_zone_1, + userdata=u4) vm_4_ip = vm_4.networks.itervalues().next()[0] logger.debug("Instance '%s' booted successfully. IP='%s'." % - (INSTANCE_4_NAME, vm_4_ip)) + (TESTCASE_CONFIG.instance_4_name, vm_4_ip)) # We boot VM1 at the end because we need to get the IPs first to generate # the userdata @@ -185,30 +131,34 @@ def main(): vm_3_ip, vm_4_ip, vm_5_ip]) - vm_1 = test_utils.create_instance(nova_client, - INSTANCE_1_NAME, - image_id, - network_1_id, - sg_id, - secgroup_name=SECGROUP_NAME, - compute_node=av_zone_1, - userdata=u1) + vm_1 = test_utils.create_instance( + nova_client, + TESTCASE_CONFIG.instance_1_name, + image_id, + network_1_id, + sg_id, + secgroup_name=TESTCASE_CONFIG.secgroup_name, + compute_node=av_zone_1, + userdata=u1) vm_1_ip = vm_1.networks.itervalues().next()[0] logger.debug("Instance '%s' booted successfully. IP='%s'." % - (INSTANCE_1_NAME, vm_1_ip)) + (TESTCASE_CONFIG.instance_1_name, vm_1_ip)) + msg = ("Create VPN with eRT<>iRT") logger.info(msg) results.add_to_summary(1, msg) vpn_name = "sdnvpn-" + str(randint(100000, 999999)) - kwargs = {"import_targets": TARGETS_1, - "export_targets": TARGETS_2, - "route_distinguishers": ROUTE_DISTINGUISHERS, - "name": vpn_name} + kwargs = { + "import_targets": TESTCASE_CONFIG.targets1, + "export_targets": TESTCASE_CONFIG.targets2, + "route_distinguishers": TESTCASE_CONFIG.route_distinguishers, + "name": vpn_name + } bgpvpn = os_utils.create_bgpvpn(neutron_client, **kwargs) bgpvpn_id = bgpvpn['bgpvpn']['id'] logger.debug("VPN created details: %s" % bgpvpn) - msg = ("Associate network '%s' to the VPN." % NET_1_NAME) + msg = ("Associate network '%s' to the VPN." % TESTCASE_CONFIG.net_1_name) logger.info(msg) results.add_to_summary(1, msg) results.add_to_summary(0, "-") @@ -235,7 +185,7 @@ def main(): results.get_ping_status(vm_1, vm_1_ip, vm_4, vm_4_ip, expected="FAIL", timeout=30) - msg = ("Associate network '%s' to the VPN." % NET_2_NAME) + msg = ("Associate network '%s' to the VPN." % TESTCASE_CONFIG.net_2_name) logger.info(msg) results.add_to_summary(0, "-") results.add_to_summary(1, msg) @@ -267,8 +217,8 @@ def main(): results.add_to_summary(0, "-") results.add_to_summary(1, msg) results.add_to_summary(0, "-") - kwargs = {"import_targets": TARGETS_1, - "export_targets": TARGETS_1, + kwargs = {"import_targets": TESTCASE_CONFIG.targets1, + "export_targets": TESTCASE_CONFIG.targets1, "name": vpn_name} bgpvpn = os_utils.update_bgpvpn(neutron_client, bgpvpn_id, **kwargs) @@ -283,7 +233,7 @@ def main(): results.get_ping_status(vm_1, vm_1_ip, vm_5, vm_5_ip, expected="PASS", timeout=30) - return results.compile_summary(SUCCESS_CRITERIA) + return results.compile_summary(TESTCASE_CONFIG.success_criteria) if __name__ == '__main__': -- cgit 1.2.3-korg