示例#1
0
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
示例#3
0
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