def create_tenant(self,tenant_conf,tenant_index): tenant_name_pattern = tenant_conf['name'] tenant_name = re.sub("XXX",str(tenant_index),tenant_name_pattern) #tenant_obj = PerTenant(self.vnc_lib,self.connections,tenant_conf,tenant_index) #tenant_id = tenant_obj.tenant_project_obj.create(tenant_name) tenant_obj = ConfigProject(self.connections) tenant_id = tenant_obj.create(tenant_name) tenant_obj.tenant_id = tenant_id self.db.set_project_id(tenant_name,tenant_id) tenant_connections = tenant_obj.get_connections() tenant_obj.update_default_sg(uuid=tenant_id) import pdb;pdb.set_trace() ipam_name_pattern = tenant_conf['virtual_networks']['IPAM']['name'] vm_index = 0 tenant_obj.create_tenant_nova_client() vm_name_pattern = tenant_conf['virtual_networks']['virtual_machines']['name'] ipam_name_pattern = tenant_conf['virtual_networks']['IPAM']['name'] data_domain_name_pattern = tenant_conf['virtual_networks']['vDNS'][1]['domain_name'] vn_name_pattern = tenant_conf['virtual_networks']['data_vn_name'] vns_count = tenant_conf['virtual_networks']['count'] vm_count = tenant_conf['virtual_networks']['virtual_machines']['count'] data_ipam_name = re.sub('XXX',str(tenant_index),ipam_name_pattern) data_ipam_name = re.sub('ZZZ','2',data_ipam_name) data_ipam_name = re.sub('CCC','data',data_ipam_name) data_domain_name = re.sub('XXX',str(tenant_index),data_domain_name_pattern) data_domain_name = re.sub('ZZZ','2',data_domain_name) data_vdns_id = self.global_vdns[data_domain_name].get_uuid() ipam_list = self.vnc_lib.network_ipams_list()['network-ipams'] print "Existing IPAM list:",ipam_list ipam_delete_list = [data_ipam_name] for ipam in ipam_list: domain,project,fq_name = ipam['fq_name'] if fq_name in ipam_delete_list: obj = IPAM(tenant_connections) ipam_id = ipam['uuid'] obj.delete(ipam_id) self.db.delete_ipam(fq_name) ipam_obj = IPAM(tenant_connections) data_ipam_id = ipam_obj.create(data_ipam_name, data_vdns_id) print "DATA IPAM:",data_ipam_id policy_name_pattern = tenant_conf['policies']['name'] allow_rules_network = tenant_conf['policies']['rules']['allow_rules_network'] allow_rules_port = tenant_conf['policies']['rules']['allow_rules_port'] rules = [] for rule_index in xrange(len(allow_rules_network)): r = allow_rules_network[rule_index].split() src_nw = r[0] dst_nw = r[1] r = allow_rules_port[rule_index].split() src_port = r[0] dst_port = r[1] rule = { 'direction': '<>', 'simple_action': 'pass', 'protocol': 'any', 'src_ports': '%s'%src_port, 'dst_ports': '%s'%dst_port, 'source_network': '%s'%src_nw, 'dest_network': '%s'%dst_nw, } print "rule:",rule rules.append(rule) tenant_connections.quantum_h = tenant_connections.get_network_h() tenant_connections.api_server_inspect = tenant_connections.get_api_server_inspect_handles() policy_name = re.sub('XXX',str(tenant_index),policy_name_pattern) policy_obj = Policy(tenant_connections) policy_obj.policy_name = policy_name print "policy name:",policy_name policy_id = policy_obj.create(tenant_connections.inputs,policy_name,rules,tenant_connections) for vn_index in xrange(vns_count): vn_name = re.sub('XXX',str(tenant_index),vn_name_pattern) vn_name = re.sub('YYY',str(vn_index),vn_name) data_vn_name = re.sub('CCC','data',vn_name) vn_obj = VN(tenant_connections) self.vn_name = data_vn_name cidr = data_cidr_obj.get_next_cidr() print "CIDR:",cidr subnets = [{'cidr':cidr,'name':self.vn_name+"_subnet"}] print "creating VN:",self.vn_name,subnets,data_ipam_id data_vn_id = vn_obj.create(self.vn_name,subnets=subnets,ipam_id=data_ipam_id) vn_obj.vn_id = data_vn_id vn_obj.add_policy(policy_obj.fixture) for c in xrange(vm_count): vm_name = "vm%d"%vm_index vm_index += 1 vm_obj = virtual_machines(tenant_index,tenant_conf,tenant_connections) vm_obj.create_vm(vm_name,self.vn_name,vn_index,self.mgmt_vn_id,data_vn_id,self.glance_image) #queue.put(1) return tenant_obj
def create_tenant(self, tenant_conf, tenant_index): tenant_name_pattern = tenant_conf['name'] tenant_name = re.sub("XXX", str(tenant_index), tenant_name_pattern) #tenant_obj = PerTenant(self.vnc_lib,self.connections,tenant_conf,tenant_index) #tenant_id = tenant_obj.tenant_project_obj.create(tenant_name) tenant_obj = ConfigProject(self.connections) tenant_id = tenant_obj.create(tenant_name) tenant_obj.tenant_id = tenant_id self.db.set_project_id(tenant_name, tenant_id) tenant_connections = tenant_obj.get_connections() tenant_obj.update_default_sg(uuid=tenant_id) import pdb pdb.set_trace() ipam_name_pattern = tenant_conf['virtual_networks']['IPAM']['name'] vm_index = 0 tenant_obj.create_tenant_nova_client() vm_name_pattern = tenant_conf['virtual_networks']['virtual_machines'][ 'name'] ipam_name_pattern = tenant_conf['virtual_networks']['IPAM']['name'] data_domain_name_pattern = tenant_conf['virtual_networks']['vDNS'][1][ 'domain_name'] vn_name_pattern = tenant_conf['virtual_networks']['data_vn_name'] vns_count = tenant_conf['virtual_networks']['count'] vm_count = tenant_conf['virtual_networks']['virtual_machines']['count'] data_ipam_name = re.sub('XXX', str(tenant_index), ipam_name_pattern) data_ipam_name = re.sub('ZZZ', '2', data_ipam_name) data_ipam_name = re.sub('CCC', 'data', data_ipam_name) data_domain_name = re.sub('XXX', str(tenant_index), data_domain_name_pattern) data_domain_name = re.sub('ZZZ', '2', data_domain_name) data_vdns_id = self.global_vdns[data_domain_name].get_uuid() ipam_list = self.vnc_lib.network_ipams_list()['network-ipams'] print "Existing IPAM list:", ipam_list ipam_delete_list = [data_ipam_name] for ipam in ipam_list: domain, project, fq_name = ipam['fq_name'] if fq_name in ipam_delete_list: obj = IPAM(tenant_connections) ipam_id = ipam['uuid'] obj.delete(ipam_id) self.db.delete_ipam(fq_name) ipam_obj = IPAM(tenant_connections) data_ipam_id = ipam_obj.create(data_ipam_name, data_vdns_id) print "DATA IPAM:", data_ipam_id policy_name_pattern = tenant_conf['policies']['name'] allow_rules_network = tenant_conf['policies']['rules'][ 'allow_rules_network'] allow_rules_port = tenant_conf['policies']['rules']['allow_rules_port'] rules = [] for rule_index in xrange(len(allow_rules_network)): r = allow_rules_network[rule_index].split() src_nw = r[0] dst_nw = r[1] r = allow_rules_port[rule_index].split() src_port = r[0] dst_port = r[1] rule = { 'direction': '<>', 'simple_action': 'pass', 'protocol': 'any', 'src_ports': '%s' % src_port, 'dst_ports': '%s' % dst_port, 'source_network': '%s' % src_nw, 'dest_network': '%s' % dst_nw, } print "rule:", rule rules.append(rule) tenant_connections.quantum_h = tenant_connections.get_network_h() tenant_connections.api_server_inspect = tenant_connections.get_api_server_inspect_handles( ) policy_name = re.sub('XXX', str(tenant_index), policy_name_pattern) policy_obj = Policy(tenant_connections) policy_obj.policy_name = policy_name print "policy name:", policy_name policy_id = policy_obj.create(tenant_connections.inputs, policy_name, rules, tenant_connections) for vn_index in xrange(vns_count): vn_name = re.sub('XXX', str(tenant_index), vn_name_pattern) vn_name = re.sub('YYY', str(vn_index), vn_name) data_vn_name = re.sub('CCC', 'data', vn_name) vn_obj = VN(tenant_connections) self.vn_name = data_vn_name cidr = data_cidr_obj.get_next_cidr() print "CIDR:", cidr subnets = [{'cidr': cidr, 'name': self.vn_name + "_subnet"}] print "creating VN:", self.vn_name, subnets, data_ipam_id data_vn_id = vn_obj.create(self.vn_name, subnets=subnets, ipam_id=data_ipam_id) vn_obj.vn_id = data_vn_id vn_obj.add_policy(policy_obj.fixture) for c in xrange(vm_count): vm_name = "vm%d" % vm_index vm_index += 1 vm_obj = virtual_machines(tenant_index, tenant_conf, tenant_connections) vm_obj.create_vm(vm_name, self.vn_name, vn_index, self.mgmt_vn_id, data_vn_id, self.glance_image) #queue.put(1) return tenant_obj