[virt-tools-list] [PATCH V5 2/2] addhardware: Deal with the conflict host device

Lin Ma lma at suse.com
Tue Sep 16 09:42:10 UTC 2014


If a host device is in use by guests, Warn user and
let user make choice while adding hardware.

Signed-off-by: Lin Ma <lma at suse.com>
---
 virtManager/addhardware.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py
index b2888ee..c1fd9e6 100644
--- a/virtManager/addhardware.py
+++ b/virtManager/addhardware.py
@@ -32,6 +32,7 @@ from virtinst import (VirtualChannelDevice, VirtualParallelDevice,
                       VirtualSmartCardDevice, VirtualRedirDevice,
                       VirtualTPMDevice, VirtualPanicDevice)
 from virtinst import VirtualController
+from virtinst import NodeDevice
 
 from . import uiutil
 from .fsdetails import vmmFSDetails
@@ -1739,6 +1740,20 @@ class vmmAddHardware(vmmGObjectUI):
 
         try:
             dev = virtinst.VirtualHostDevice(self.conn.get_backend())
+            # Hostdev collision
+            names  = []
+            vms = self.conn.get_backend().fetch_all_guests()
+            for vm in vms:
+                for hostdev in vm.get_devices("hostdev"):
+                    if NodeDevice.compare_to_nodedev(hostdev, nodedev):
+                        names.append(vm.name)
+            if names:
+                res = self.err.yes_no(
+                        _('The device is already in use by other guests %s') %
+                         (names),
+                        _("Do you really want to use the device?"))
+                if not res:
+                    return False
             dev.set_from_nodedev(nodedev, use_full_usb=is_dup)
             self._dev = dev
         except Exception, e:
-- 
1.8.4




More information about the virt-tools-list mailing list