Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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
Пример #4
0
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