def get_pci_device_by_addr(self, node_id, dev_addr): try: filters = {'compute_node_uuid': node_id, 'address': dev_addr} pcis = self.list_pci_devices(filters=filters) except etcd.EtcdKeyNotFound: raise exception.PciDeviceNotFound(node_id=node_id, address=None) except Exception as e: LOG.error('Error occurred while retrieving pci device: %s', six.text_type(e)) raise if len(pcis) == 0: raise exception.PciDeviceNotFound(node_id=node_id, address=None) return pcis
def get_pci_device_by_addr(self, node_id, dev_addr): pci_dev_ref = model_query(models.PciDevice).\ filter_by(compute_node_uuid=node_id).\ filter_by(address=dev_addr).\ first() if not pci_dev_ref: raise exception.PciDeviceNotFound(node_id=node_id, address=dev_addr) return pci_dev_ref
def _get_pci_device_profile(self, pci_dev): dev_spec = self.pci_whitelist.get_devspec(pci_dev) if dev_spec: return {'pci_vendor_info': "%s:%s" % (pci_dev.vendor_id, pci_dev.product_id), 'pci_slot': pci_dev.address, 'physical_network': dev_spec.get_tags().get('physical_network')} raise exception.PciDeviceNotFound(node_id=pci_dev.compute_node_uuid, address=pci_dev.address)
def destroy_pci_device(self, node_id, address): session = get_session() with session.begin(): query = model_query(models.PciDevice).\ filter_by(compute_node_uuid=node_id).\ filter_by(address=address) count = query.delete() if count != 1: raise exception.PciDeviceNotFound(node_id=node_id, address=address)