Pārlūkot izejas kodu

core: show clear message when a VM has non-existing PCI device assigned

Marek Marczykowski-Górecki 9 gadi atpakaļ
vecāks
revīzija
ad89c8f8a2
1 mainītis faili ar 9 papildinājumiem un 1 dzēšanām
  1. 9 1
      core-modules/000QubesVm.py

+ 9 - 1
core-modules/000QubesVm.py

@@ -1720,7 +1720,15 @@ class QubesVm(object):
 
         # Bind pci devices to pciback driver
         for pci in self.pcidevs:
-            nd = vmm.libvirt_conn.nodeDeviceLookupByName('pci_0000_' + pci.replace(':','_').replace('.','_'))
+            try:
+                nd = vmm.libvirt_conn.nodeDeviceLookupByName('pci_0000_' + pci.replace(':','_').replace('.','_'))
+            except libvirt.libvirtError as e:
+                if e.err[0] == libvirt.VIR_ERR_NO_NODE_DEVICE:
+                    raise QubesException(
+                        "PCI device {} does not exist (domain {})".
+                        format(pci, self.name))
+                else:
+                    raise
             try:
                 nd.dettach()
             except libvirt.libvirtError as e: