Browse Source

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

Marek Marczykowski-Górecki 9 years ago
parent
commit
ad89c8f8a2
1 changed files with 9 additions and 1 deletions
  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: