def test_lbaas_l7switching(cmgr, lb_name, image_name=None, platform='os', **kwargs): lb_name = lb_name or 'cmgr-lb2-http' build_cfg = dict(groupid=1, group_num_sever=2, num_servers=4) build_cfg.update(**kwargs) if platform == 'nsx': image_name = image_name or u'cirros-0.3.3-x86_64-disk' lb2_config = lbaas2.build_nsx_lbaas( cmgr, lb_name, image_name=image_name, **build_cfg) else: image_name = image_name or "cirros-0.3.3-x86_64-ESX" lb2_config = lbaas2.build_os_lbaas( cmgr, lb_name, image_name=image_name, **build_cfg) keypair = lb2_config['network']['keypair'] security_group_id = lb2_config['network']['security_group'].get('id') http_server_id_list = lb2_config.get('group_server_id_list') l7_server_id_list = lb2_config.get('other_server_id_list') http_server_name_list = lb2_config.get('group_server_name_list') l7_server_name_list = lb2_config.get('other_server_name_list') netaggr.show_toplogy(cmgr) lbaas2.show_lbaas_tree(cmgr, lb_name) cmgr.lbaas('loadbalancer-status', lb_name) vip_public_ip = lbaas2.get_loadbalancer_floatingip( cmgr, lb_name)[1][u'floating_ip_address'] lb = cmgr.lbaas('loadbalancer-show', lb_name) lb_id = lb.get('id') vip_subnet_id = lb.get('vip_subnet_id') redirect_to_listener_id = lb.get('listeners')[0].get('id') l7_cfg = ll7.build_l7_switching( cmgr, vip_subnet_id, lb_id, redirect_to_listener_id, l7_server_id_list) # every server return its server-name upon http request ll7.run_l7_switching(http_server_name_list, vip_public_ip, '') ll7.run_l7_switching(http_server_name_list, vip_public_ip, 'v2/api') # wait little bit before l7 switching kicked in? time.sleep(5.0) ll7.run_l7_switching(l7_server_name_list, vip_public_ip, 'api') ll7.run_l7_switching(l7_server_name_list, vip_public_ip, 'api/firewalls') return dict( name=lb_name, image_name=image_name, keypair=keypair, vip_public_ip=vip_public_ip, subnet_id=vip_subnet_id, security_group_id=security_group_id, http_server_id_list=http_server_id_list, http_server_name_list=http_server_name_list, l7_server_id_list=l7_server_id_list, l7_server_name_list=l7_server_name_list, l7_pool=l7_cfg.get('pool') )
from itempest import load_our_solar_system as osn from itempest.lib import lib_net_aggr as netaggr from itempest.lib import lib_networks # create lb network and servers from itempest.tools import build_lbaas_networks as lb_net from itempest.tools import build_lbaas_v1 as lbaasv1 username = '******' password = "******" test_prefix = 'lb-venus' venus = osn.utils.get_mimic_manager_cli(osn.os_auth_url, username, password) lb_core_network = lb_net.setup_lb_network_and_servers(venus, test_prefix) lb_net.start_webservers(lb_core_network) netaggr.show_toplogy(venus) web_servers = [server for server_id, server in lb_core_network['servers'].items()] subnet = lb_core_network['subnet'] mem_address_list = [wserv['fip']['fixed_ip_address'] for wserv in web_servers] port = lb_core_network['port'] security_group_id = lb_core_network['security_group']['id'] # create lbaas load-balancer, listener, pool, monitor, member lb_v = lbaasv1.create_lbv1(venus, subnet, mem_address_list, prefix=test_prefix, protocol_port=port, ip_version=4) lb_vip = lb_v['vip'] vip_fip = lbaasv1.assign_floatingip_to_vip( venus, lb_vip, security_group_id=security_group_id) # sshc = lib_networks.create_ssh_client(vip_fip["floating_ip_address”])