Exemplo n.º 1
0
    def _init_dev_details(self):
        details = jsonutils.loads(self.dev_spec)
        self.vendor_id = details.pop("vendor_id", ANY)
        self.product_id = details.pop("product_id", ANY)
        self.address = details.pop("address", None)
        self.dev_name = details.pop("devname", None)

        self.vendor_id = self.vendor_id.strip()
        get_pci_dev_info(self, 'vendor_id', MAX_VENDOR_ID, '%04x')
        get_pci_dev_info(self, 'product_id', MAX_PRODUCT_ID, '%04x')

        pf = False
        if self.address and self.dev_name:
            raise exception.PciDeviceInvalidDeviceName()
        if not self.address:
            if self.dev_name:
                self.address, pf = pci_utils.get_function_by_ifname(
                    self.dev_name)
                if not self.address:
                    raise exception.PciDeviceNotFoundById(id=self.dev_name)
            else:
                self.address = "*:*:*.*"

        self.address = PciAddress(self.address, pf)
        self.tags = details
Exemplo n.º 2
0
    def _init_dev_details(self):
        details = jsonutils.loads(self.dev_spec)
        self.vendor_id = details.pop("vendor_id", ANY)
        self.product_id = details.pop("product_id", ANY)
        self.address = details.pop("address", None)
        self.dev_name = details.pop("devname", None)

        self.vendor_id = self.vendor_id.strip()
        get_pci_dev_info(self, 'vendor_id', MAX_VENDOR_ID, '%04x')
        get_pci_dev_info(self, 'product_id', MAX_PRODUCT_ID, '%04x')

        pf = False
        if self.address and self.dev_name:
            raise exception.PciDeviceInvalidDeviceName()
        if not self.address:
            if self.dev_name:
                self.address, pf = pci_utils.get_function_by_ifname(
                    self.dev_name)
                if not self.address:
                    raise exception.PciDeviceNotFoundById(id=self.dev_name)
            else:
                self.address = "*:*:*.*"

        self.address = PciAddress(self.address, pf)
        self.tags = details