class ConfigScaleSetup: def __init__(self): self.ini_file= 'sanity_params.ini' self.log_name='tor-scale.log' Logger = logging.ContrailLogger(self.log_name) Logger.setUp() self.logger = Logger.logger def get_connection_handle(self): self.inputs = ContrailTestInit(self.ini_file,logger=self.logger) self.inputs.setUp() self.connections= ContrailConnections(self.inputs, self.logger) self.connections.get_vnc_lib_h() # will set self.vnc_lib in the object self.auth = self.connections.get_auth_h() def config_test(self): self.get_connection_handle() tenant_name = "tenant" + "".join([random.choice(string.ascii_uppercase + string.digits) for i in xrange(10)]) project_obj = Project(self.connections) project_obj.create(tenant_name)
class ConfigScaleSetup: def __init__(self): self.ini_file = "sanity_params.ini" self.log_name = "tor-scale.log" Logger = logging.ContrailLogger(self.log_name) Logger.setUp() self.logger = Logger.logger def get_connection_handle(self): self.inputs = ContrailTestInit(self.ini_file, logger=self.logger) self.inputs.setUp() self.connections = ContrailConnections(self.inputs, self.logger) self.connections.get_vnc_lib_h() # will set self.vnc_lib in the object self.auth = self.connections.get_auth_h() def config_test(self): self.get_connection_handle() tenant_name = "tenant" + "".join([random.choice(string.ascii_uppercase + string.digits) for i in xrange(10)]) project_obj = Project(self.connections) project_obj.create(tenant_name)
class Test(object): def __init__(self, global_conf, test_conf): self.global_conf = global_conf self.test_conf = test_conf self.connections = setup_test_infra(global_conf['ENV']['testbed_file']) self.uuid = dict() self.tenant_ids = list() self.vm_connections_map = dict() self.ostack_admin_obj = Openstack(OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME) self.mysql_passwd = get_mysql_token() @retry(delay=60, tries=30) def wait_until_vms_deleted(self, tenant_id): vm_list = self.ostack_admin_obj.nova_client.servers.list( search_opts={'all_tenants': 1}) print "VM_list:", vm_list vm_to_be_deleted = [] for vm in vm_list: vm_id = vm.id if vm.tenant_id == re.sub("-", "", tenant_id): vm_to_be_deleted.append(vm) if len(vm_to_be_deleted) == 0: return True else: return False def delete_vms(self, tenant_id): vm_list = self.ostack_admin_obj.nova_client.servers.list( search_opts={'all_tenants': 1}) print "VM_list:", vm_list vm_to_be_deleted = [] for vm in vm_list: vm_id = vm.id #print vm.tenant_id,tenant_id if vm.tenant_id == re.sub("-", "", tenant_id): vm_to_be_deleted.append(vm) for vm in vm_to_be_deleted: vm_id = vm.id print "deletingvm:%s" % str(vm_id) self.ostack_admin_obj.nova_client.servers.delete(vm_id) self.wait_until_vms_deleted(tenant_id) def cleanup(self, tenant_obj, tenant_id): net_list = self.ostack_admin_obj.neutron_client.list_networks( )['networks'] subnet_list = self.ostack_admin_obj.neutron_client.list_subnets( )['subnets'] port_list = self.ostack_admin_obj.neutron_client.list_ports()['ports'] self.delete_vms(tenant_id) for subnet in subnet_list: if subnet["tenant_id"] == re.sub("-", "", tenant_id): print "Name:", subnet['name'] subnet_id = subnet['id'] self.ostack_admin_obj.neutron_client.delete_subnet(subnet_id) for net in net_list: if net["tenant_id"] == re.sub("-", "", tenant_id): print "Name:", net['name'] net_id = net['id'] self.ostack_admin_obj.neutron_client.delete_network(net_id) tenant_obj.delete(tenant_id) def create_vm(self, tenant_name, vm_name, shared_vn_id, vn_id, image): self.connections.inputs.project_name = tenant_name self.connections.project_name = tenant_name self.connections.inputs.stack_tenant = tenant_name vm_obj = VM(self.connections) vm_obj.flavor = 5 vm_obj.zone = "nova" #vm_obj.sg_ids=["4dd30150-f3ff-43d9-afcc-102df8dc658a"] print "VM:", vm_name, vn_id, image, shared_vn_id, vn_id vm_id = vm_obj.create(vm_name, [shared_vn_id, vn_id], image) return vm_id def setUp(self): tenants = self.test_conf['tenants'][0] tenant_count = tenants['count'] vns_count = tenants['virtual_networks'][0]['count'] subnet_count = tenants['virtual_networks'][0]['subnets'][0]['count'] vm_count = tenants['virtual_networks'][0]['virtual_machines'][0][ 'count'] + tenants['virtual_networks'][0]['virtual_machines'][1][ 'count'] glance_image = self.global_conf['GLOBALS']['glance_image_name'] cidr_start = tenants['virtual_networks'][0]['subnets'][0]['cidr'] cidr_obj = CIDR(cidr_start) vm_obj_list = [] self.connections.project_name = "admin" self.connections = ContrailConnections(inputs=inputs, logger=mylogger) self.connections.vnc_lib = self.connections.get_vnc_lib_h() vdns_obj = vDNS(self.connections) vdns_id = vdns_obj.create('vDNS-test') vdns_fqname = vdns_obj.fq_name(vdns_id) print "vDNS:", vdns_fqname ipam_obj = IPAM(self.connections) ipam_id = ipam_obj.create('ipam-test', vdns_id) ipam_fqname = ipam_obj.fq_name(ipam_id) print "IPAM:", ipam_fqname vn_obj = VN(self.connections) cidr = "192.167.0.0/16" vn_name = "shared_net" subnets = [{'cidr': cidr, 'name': "shared_subnet"}] vn_obj.shared = True shared_vn_id = vn_obj.create(vn_name, subnets=subnets, ipam_id=ipam_id) tenant_obj = Project(self.connections) admin_tenant_id = self.connections.get_auth_h().get_project_id( 'default_domain', 'admin') for tenant_index in xrange(tenant_count): self.connections.project_id = admin_tenant_id self.connections.inputs.project_name = "admin" self.connections.project_name = "admin" self.connections.project_fq_name = "admin" self.connections.domain_name = "admin" self.connections = ContrailConnections(inputs=inputs, logger=mylogger, project_name="admin") self.connections.vnc_lib = self.connections.get_vnc_lib_h() self.tenant_name = "TC002_tenant_%d" % tenant_index tenant_id = self.connections.get_auth_h().get_project_id( 'default_domain', self.tenant_name) if not tenant_id: tenant_id = tenant_obj.create(self.tenant_name) self.connections = ContrailConnections( inputs=inputs, logger=mylogger, project_name=self.tenant_name) self.connections.vnc_lib = self.connections.get_vnc_lib_h() self.connections.inputs.project_name = self.tenant_name self.connections.project_name = self.tenant_name self.connections.project_fq_name = self.tenant_name self.connections.domain_name = self.tenant_name self.connections.project_id = tenant_id
class Test(object): def __init__(self,global_conf,test_conf): self.global_conf = global_conf self.test_conf = test_conf self.connections = setup_test_infra(global_conf['ENV']['testbed_file']) self.uuid = dict() self.tenant_ids = list() self.vm_connections_map = dict() self.ostack_admin_obj = Openstack(OS_AUTH_URL,OS_USERNAME,OS_PASSWORD,OS_TENANT_NAME) self.mysql_passwd = get_mysql_token() @retry(delay=60, tries=30) def wait_until_vms_deleted(self,tenant_id): vm_list = self.ostack_admin_obj.nova_client.servers.list(search_opts={'all_tenants': 1}) print "VM_list:",vm_list vm_to_be_deleted = [] for vm in vm_list: vm_id = vm.id if vm.tenant_id == re.sub("-","",tenant_id) : vm_to_be_deleted.append(vm) if len(vm_to_be_deleted) == 0 : return True else: return False def delete_vms(self,tenant_id): vm_list = self.ostack_admin_obj.nova_client.servers.list(search_opts={'all_tenants': 1}) print "VM_list:",vm_list vm_to_be_deleted = [] for vm in vm_list: vm_id = vm.id #print vm.tenant_id,tenant_id if vm.tenant_id == re.sub("-","",tenant_id) : vm_to_be_deleted.append(vm) for vm in vm_to_be_deleted: vm_id = vm.id print "deletingvm:%s"%str(vm_id) self.ostack_admin_obj.nova_client.servers.delete(vm_id) self.wait_until_vms_deleted(tenant_id) def cleanup(self,tenant_obj,tenant_id): net_list = self.ostack_admin_obj.neutron_client.list_networks()['networks'] subnet_list = self.ostack_admin_obj.neutron_client.list_subnets()['subnets'] port_list = self.ostack_admin_obj.neutron_client.list_ports()['ports'] self.delete_vms(tenant_id) for subnet in subnet_list : if subnet["tenant_id"] == re.sub("-","",tenant_id) : print "Name:",subnet['name'] subnet_id = subnet['id'] self.ostack_admin_obj.neutron_client.delete_subnet(subnet_id) for net in net_list : if net["tenant_id"] == re.sub("-","",tenant_id) : print "Name:",net['name'] net_id = net['id'] self.ostack_admin_obj.neutron_client.delete_network(net_id) tenant_obj.delete(tenant_id) def create_vm(self,tenant_name,vm_name,shared_vn_id,vn_id,image): self.connections.inputs.project_name = tenant_name self.connections.project_name = tenant_name self.connections.inputs.stack_tenant = tenant_name vm_obj = VM(self.connections) vm_obj.flavor=5 vm_obj.zone="nova" #vm_obj.sg_ids=["4dd30150-f3ff-43d9-afcc-102df8dc658a"] print "VM:",vm_name,vn_id,image,shared_vn_id,vn_id vm_id = vm_obj.create(vm_name,[shared_vn_id,vn_id],image) return vm_id def setUp(self): tenants = self.test_conf['tenants'][0] tenant_count = tenants['count'] vns_count = tenants['virtual_networks'][0]['count'] subnet_count = tenants['virtual_networks'][0]['subnets'][0]['count'] vm_count = tenants['virtual_networks'][0]['virtual_machines'][0]['count'] + tenants['virtual_networks'][0]['virtual_machines'][1]['count'] glance_image = self.global_conf['GLOBALS']['glance_image_name'] cidr_start = tenants['virtual_networks'][0]['subnets'][0]['cidr'] cidr_obj = CIDR(cidr_start) vm_obj_list = [] self.connections.project_name = "admin" self.connections = ContrailConnections(inputs=inputs, logger=mylogger) self.connections.vnc_lib = self.connections.get_vnc_lib_h() vdns_obj = vDNS(self.connections) vdns_id = vdns_obj.create('vDNS-test') vdns_fqname = vdns_obj.fq_name(vdns_id) print "vDNS:",vdns_fqname ipam_obj = IPAM(self.connections) ipam_id = ipam_obj.create('ipam-test', vdns_id) ipam_fqname = ipam_obj.fq_name(ipam_id) print "IPAM:",ipam_fqname vn_obj = VN(self.connections) cidr = "192.167.0.0/16" vn_name = "shared_net" subnets = [{'cidr':cidr,'name':"shared_subnet"}] vn_obj.shared=True shared_vn_id = vn_obj.create(vn_name,subnets=subnets,ipam_id=ipam_id) tenant_obj = Project(self.connections) admin_tenant_id = self.connections.get_auth_h().get_project_id('default_domain','admin') for tenant_index in xrange(tenant_count): self.connections.project_id = admin_tenant_id self.connections.inputs.project_name = "admin" self.connections.project_name = "admin" self.connections.project_fq_name = "admin" self.connections.domain_name = "admin" self.connections = ContrailConnections(inputs=inputs, logger=mylogger,project_name="admin") self.connections.vnc_lib = self.connections.get_vnc_lib_h() self.tenant_name = "TC002_tenant_%d"%tenant_index tenant_id = self.connections.get_auth_h().get_project_id('default_domain',self.tenant_name) if not tenant_id: tenant_id = tenant_obj.create(self.tenant_name) self.connections = ContrailConnections(inputs=inputs, logger=mylogger,project_name=self.tenant_name) self.connections.vnc_lib = self.connections.get_vnc_lib_h() self.connections.inputs.project_name = self.tenant_name self.connections.project_name = self.tenant_name self.connections.project_fq_name = self.tenant_name self.connections.domain_name = self.tenant_name self.connections.project_id = tenant_id