def create_network(network_name,network_cidr): """ This method is used to create network, subnets, router with \ external gateway mapping for the given network name and CIDR. """ try: print "\n\n" print "="*50 print " Initiated Network Creation for "+network_name print "="*50 print "\n\n" body_sample = {'network': {'name': network_name,'admin_state_up': True}} netw = neutron.create_network(body=body_sample) net_dict = netw['network'] network_id = net_dict['id'] print(' - Network %s created' % net_dict['name']) body_create_subnet = {'subnets': [{'name':network_name+"_subnet",'cidr': network_cidr,'ip_version': 4, 'network_id': network_id}]} subnet_detail = neutron.create_subnet(body=body_create_subnet) subnet = subnet_detail['subnets'][0] print(' - Created subnet %s' % subnet['name']) router_detail = neutron.create_router( { 'router' : { 'name' : network_name+'_router' } } ) router = router_detail['router'] neutron.add_interface_router(router['id'], { 'subnet_id' : subnet['id'] } ) # neutron.add_gateway_router(router['id'], { 'network_id' : neutron.list_networks(name = EXTERNAL_NETWORK)['networks'][0]['id'] } ) print(' - Created Router %s' % router['name']) finally: print "\n\n" print("<== Completed Network Creation with External Gateway Successfully ==>") print "\n\n" print "="*50 print " Initiated VM Deployment "+network_name print "="*50 print "\n\n" for i in range(1,VM_COUNT+1): vm_name = net_dict['name']+'_VM_'+str(i) launch_vm_on_network(vm_name,network_id) print "\n\n" print("<== Completed VM Launch on Network with Floating IP Allocation Successfully ==>") return True
def launch_instance(tenant_data,network_data): #pdb.set_trace() inst_data=[] count=1 for tenant in tenant_data: for network in network_data: pdb.set_trace() vm_name=tenant['name'] + '-vm-' + str(count) if ((network['network_list']['tenant_name'] == tenant['name']) and (network['network_list']['shared'] == False)): inst_data.append(launch_vm_on_network(tenant['name'],vm_name,network['network_list']['network_id'])) count += 1
def create_network(tenant, router, network_index, network_cidr): """ This method is used to create network, subnets, interfaces on router with \ external gateway mapping for the given network name and CIDR. """ try: prefix = tenant['tenant_name'] network_name = prefix + '-net-' + network_index print "\n" print "=" * 50 print " Initiated Network Creation for " + network_name print "=" * 50 print "\n" body_sample = {'network': {'name': network_name, 'tenant_id': tenant['tenant_id']}} start_time = datetime.now(timezone('US/Pacific')) try: net = neutron.create_network(body=body_sample) net_dict = net['network'] network_id = net_dict['id'] network_vlan = net_dict['provider:segmentation_id'] print(' - Network %s created' % net_dict['name']) net_status = True except Exception: net_dict = {} net_status = False subnet_name = prefix + "-subnet-" + network_index try: tenant_id = tenant['tenant_id'] body_create_subnet = {'subnets': [{'name': subnet_name, 'cidr': network_cidr, 'ip_version': 4, 'network_id': network_id, 'tenant_id': tenant_id}]} subnet_detail = neutron.create_subnet(body=body_create_subnet) subnet = subnet_detail['subnets'][0] print(' - Created subnet %s' % subnet['name']) net_status = True except Exception: subnet = {} net_status = False neutron.add_interface_router(router['id'], {'subnet_id': subnet['id'], 'tenant_id': tenant['tenant_id']}) print (' - Created interface between %s' % subnet['name']) finally: print "\n" msg = "<== Completed Network Creation with External Gateway " msg += "Successfully ==>" print msg end_time = datetime.now(timezone('US/Pacific')) print "\n" print "-"*65 print (" Network %s Creation Time Summary :" % network_name) print "-"*65 print "\n" print(' - Test Started Time :\t %s' % (start_time.strftime(fmt))) print(' - Test Ended Time :\t %s' % (end_time.strftime(fmt))) print "\n" print "=" * 50 print " Initiated VM Deployment " + network_name print "=" * 50 print "\n" ins_data = [] for i in range(1, VM_COUNT + 1): vm_name = network_name + '-vm-' + str(i) start_time = datetime.now(timezone('US/Pacific')) ins_data.append(launch_vm_on_network(tenant['tenant_name'], vm_name, network_id)) end_time = datetime.now(timezone('US/Pacific')) print "\n" msg = "<== Completed VM Launch on Network with Floating IP Allocation " msg += "Successfully ==>" print msg print "\n" print "-"*65 print (" Instance %s Creation Time Summary :" % vm_name) print "-"*65 print "\n" print(' - Test Started Time :\t %s' % (start_time.strftime(fmt))) print(' - Test Ended Time :\t %s' % (end_time.strftime(fmt))) result = {'network_data': {'tenant_name': tenant['tenant_name'], 'network_name': network_name, 'network_cidr': network_cidr, 'subnet_name': subnet_name, 'network_id': network_id, 'network_vlan_id': network_vlan, 'status': net_status}, 'instance_data': ins_data} return result