예제 #1
0
 def update_vlan_id(self, vlan_id):
     vmi_obj = self.vnc_h.read_virtual_machine_interface(id=self.uuid)
     vmi_props = vmi_obj.get_virtual_machine_interface_properties() \
         or vnc_api_test.VirtualMachineInterfacePropertiesType()
     vmi_props.set_sub_interface_vlan_tag(vlan_id)
     vmi_obj.set_virtual_machine_interface_properties(vmi_props)
     self.vnc_h.virtual_machine_interface_update(vmi_obj)
     self.vlan_id = vlan_id
예제 #2
0
    def delete_max_flows(self):

        self.logger.info('Deleting Max Flows of VMI(%s)-uuid %s' %
                         (self.name, self.uuid))
        vnc_lib = self.vnc_api_h
        vmi_obj = vnc_lib.virtual_machine_interface_read(id=self.uuid)
        vmi_properties_obj = vmi_obj.get_virtual_machine_interface_properties() \
            or vnc_api_test.VirtualMachineInterfacePropertiesType()
        vmi_properties_obj.set_max_flows(int(0))
        vmi_obj.set_virtual_machine_interface_properties(vmi_properties_obj)
        return vnc_lib.virtual_machine_interface_update(vmi_obj)
예제 #3
0
    def set_max_flows(self, max_flows=None):
        if max_flows is None:
            max_flows = self.max_flows

        self.logger.info('Setting Max Flows of VMI(%s)-uuid %s to %s' %
                         (self.name, self.uuid, max_flows))
        vnc_lib = self.vnc_api_h
        vmi_obj = vnc_lib.virtual_machine_interface_read(id=self.uuid)
        vmi_properties_obj = vmi_obj.get_virtual_machine_interface_properties() \
            or vnc_api_test.VirtualMachineInterfacePropertiesType()
        vmi_properties_obj.set_max_flows(int(max_flows))
        vmi_obj.set_virtual_machine_interface_properties(vmi_properties_obj)
        return vnc_lib.virtual_machine_interface_update(vmi_obj)
예제 #4
0
    def _contrail_create_port(self):
        vmi_props = vnc_api_test.VirtualMachineInterfacePropertiesType()
        if not self.project_obj:
            self.project_obj = self.vnc_api_h.project_read(id=self.project_id)
        vmi_id = str(uuid.uuid4())
        vmi_obj = vnc_api_test.VirtualMachineInterface(name=self.name,
            parent_obj=self.project_obj)
        if self.mac_address:
            mac_address_obj = vnc_api_test.MacAddressesType()
            mac_address_obj.set_mac_address([str(EUI(self.mac_address))])
            vmi_obj.set_virtual_machine_interface_mac_addresses(
                mac_address_obj)
        vmi_obj.uuid = vmi_id
        vmi_obj.add_virtual_network(self.vn_obj)

        if self.security_groups:
            for sg_id in self.security_groups:
                sg_obj = self.vnc_api_h.security_group_read(id=sg_id)
                vmi_obj.add_security_group(sg_obj)
        else:
            # Associate default SG
            default_sg_fq_name = self.project_obj.fq_name[:]
            default_sg_fq_name.append('default')
            sg_obj = self.vnc_api_h.security_group_read(
                fq_name=default_sg_fq_name)
            vmi_obj.add_security_group(sg_obj)

        if self.extra_dhcp_opts:
            # TODO
            pass

        if self.vlan_id is not None:
            vmi_props.set_sub_interface_vlan_tag(int(self.vlan_id))

        if self.parent_vmi:
            vmi_obj.add_virtual_machine_interface(self.parent_vmi)

        if self.device_owner:
            vmi_obj.set_virtual_machine_interface_device_owner(self.device_owner)

        if self.binding_profile:
            bind_kv = vnc_api_test.KeyValuePair(key='profile',
                      value=json.dumps(self.binding_profile))
            kv_pairs = vmi_obj.get_virtual_machine_interface_bindings() or\
                       vnc_api_test.KeyValuePairs()
            kv_pairs.add_key_value_pair(bind_kv)
            if 'local_link_information' in self.binding_profile:
                vnic_kv = vnc_api_test.KeyValuePair(key='vnic_type',
                          value='baremetal')
                kv_pairs.add_key_value_pair(vnic_kv)
                vmi_obj.set_virtual_machine_interface_device_owner("baremetal:None")
            vmi_obj.set_virtual_machine_interface_bindings(kv_pairs)

        vmi_obj.set_virtual_machine_interface_properties(vmi_props)
        self.vmi_obj = self.vnc_api_h.virtual_machine_interface_create(vmi_obj)
        self.uuid = vmi_id

        self.iip_objs = []
        if self.create_iip == False:
            return
        if self.fixed_ips:
            for fixed_ip in self.fixed_ips:
                iip_id = str(uuid.uuid4())
                iip_obj = vnc_api_test.InstanceIp(name=iip_id,
                                     subnet_id=fixed_ip['subnet_id'])
                iip_obj.uuid = iip_id
                iip_obj.add_virtual_machine_interface(vmi_obj)
                iip_obj.add_virtual_network(self.vn_obj)
                if fixed_ip.get("ip_address", None):
                    iip_obj.set_instance_ip_address(fixed_ip['ip_address'])
                if fixed_ip.get("instance_ip_secondary", False):
                    iip_obj.instance_ip_secondary = True
                id = self.vnc_api_h.instance_ip_create(iip_obj)
                iip_obj = self.vnc_api_h.instance_ip_read(id=id)
                self.iip_objs.append(iip_obj)
        else:
            iip_id = str(uuid.uuid4())
            iip_obj = vnc_api_test.InstanceIp(name=iip_id)
            iip_obj.uuid = iip_id
            iip_obj.add_virtual_machine_interface(vmi_obj)
            iip_obj.add_virtual_network(self.vn_obj)
            self.vnc_api_h.instance_ip_create(iip_obj)
            if self.af in ['v6', 'dual']:
                iip_id2 = str(uuid.uuid4())
                iip_obj2 = vnc_api_test.InstanceIp(name=iip_id2, instance_ip_family='v6')
                iip_obj2.uuid = iip_id2
                iip_obj2.add_virtual_machine_interface(vmi_obj)
                iip_obj2.add_virtual_network(self.vn_obj)
                self.vnc_api_h.instance_ip_create(iip_obj2)
예제 #5
0
    def _contrail_create_port(self):
        vmi_props = vnc_api_test.VirtualMachineInterfacePropertiesType()

        if not self.project_obj:
            self.project_obj = self.vnc_api_h.project_read(id=self.project_id)
        vmi_id = str(uuid.uuid4())
        vmi_obj = vnc_api_test.VirtualMachineInterface(
            name=vmi_id, parent_obj=self.project_obj)
        if self.mac_address:
            mac_address_obj = vnc_api_test.MacAddressesType()
            mac_address_obj.set_mac_address([str(EUI(self.mac_address))])
            vmi_obj.set_virtual_machine_interface_mac_addresses(
                mac_address_obj)
        vmi_obj.uuid = vmi_id
        vmi_obj.add_virtual_network(self.vn_obj)

        if self.security_groups:
            for sg_id in self.security_groups:
                sg_obj = self.vnc_api_h.security_group_read(id=sg_id)
                vmi_obj.add_security_group(sg_obj)
        else:
            # Associate default SG
            default_sg_fq_name = self.project_obj.fq_name[:]
            default_sg_fq_name.append('default')
            sg_obj = self.vnc_api_h.security_group_read(
                fq_name=default_sg_fq_name)
            vmi_obj.add_security_group(sg_obj)

        if self.extra_dhcp_opts:
            # TODO
            pass

        if self.vlan_id:
            vmi_props.set_sub_interface_vlan_tag(int(self.vlan_id))

        if self.parent_vmi:
            vmi_obj.add_virtual_machine_interface(self.parent_vmi)

        if self.binding_profile:
            bind_kv = vnc_api_test.KeyValuePair(key='profile',
                                                value=str(
                                                    self.binding_profile))
            kv_pairs = vmi_obj.get_virtual_machine_interface_bindings() or\
                       vnc_api_test.KeyValuePairs()
            kv_pairs.add_key_value_pair(bind_kv)
            vmi_obj.set_virtual_machine_interface_bindings(kv_pairs)

        vmi_obj.set_virtual_machine_interface_properties(vmi_props)
        self.vmi_obj = self.vnc_api_h.virtual_machine_interface_create(vmi_obj)
        self.uuid = vmi_id

        self.iip_objs = []
        if self.fixed_ips:
            for fixed_ip in self.fixed_ips:
                iip_id = str(uuid.uuid4())
                iip_obj = vnc_api_test.InstanceIp(
                    name=iip_id, subnet_id=fixed_ip['subnet_id'])
                iip_obj.uuid = iip_id
                iip_obj.add_virtual_machine_interface(vmi_obj)
                iip_obj.add_virtual_network(self.vn_obj)
                if fixed_ip.get("ip_address", None):
                    iip_obj.set_instance_ip_address(fixed_ip['ip_address'])
                if fixed_ip.get("instance_ip_secondary", False):
                    iip_obj.instance_ip_secondary = True
                id = self.vnc_api_h.instance_ip_create(iip_obj)
                iip_obj = self.vnc_api_h.instance_ip_read(id=id)
                self.iip_objs.append(iip_obj)
        else:
            iip_id = str(uuid.uuid4())
            iip_obj = vnc_api_test.InstanceIp(name=iip_id)
            iip_obj.uuid = iip_id
            iip_obj.add_virtual_machine_interface(vmi_obj)
            iip_obj.add_virtual_network(self.vn_obj)
            self.vnc_api_h.instance_ip_create(iip_obj)