Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)