File virtman-git-tick-obj-lists.diff of Package virt-manager

Subject: connection: Don't have tick edit object lists in place
From: Cole Robinson crobinso@redhat.com Thu Oct 13 16:59:15 2011 -0400
Date: Thu Oct 13 16:59:15 2011 -0400:
Git: 392cb8075fe5ae2f20b9fdf0d85e4510cc799cc1

Since 'tick' isn't really thread safe, and we sometimes call a manual tick
to refresh resources (say immediately after creating a guest), we
can't depend on lists staying consistent.

Index: virt-manager-0.9.0/src/virtManager/connection.py
===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/connection.py
+++ virt-manager-0.9.0/src/virtManager/connection.py
@@ -1270,7 +1270,7 @@ class vmmConnection(vmmGObject):
         return (stop, start, origlist, new, current)
 
     def _update_nets(self):
-        orig = self.nets
+        orig = self.nets.copy()
         name = "network"
         active_list = self.vmm.listNetworks
         inactive_list = self.vmm.listDefinedNetworks
@@ -1283,7 +1283,7 @@ class vmmConnection(vmmGObject):
                                  lookup_func, build_class)
 
     def _update_pools(self):
-        orig = self.pools
+        orig = self.pools.copy()
         name = "pool"
         active_list = self.vmm.listStoragePools
         inactive_list = self.vmm.listDefinedStoragePools
@@ -1296,7 +1296,7 @@ class vmmConnection(vmmGObject):
                                  lookup_func, build_class)
 
     def _update_interfaces(self):
-        orig = self.interfaces
+        orig = self.interfaces.copy()
         name = "interface"
         active_list = self.vmm.listInterfaces
         inactive_list = self.vmm.listDefinedInterfaces
@@ -1310,7 +1310,7 @@ class vmmConnection(vmmGObject):
 
 
     def _update_nodedevs(self):
-        orig = self.nodedevs
+        orig = self.nodedevs.copy()
         name = "nodedev"
         active_list = lambda: self.vmm.listDevices(None, 0)
         inactive_list = lambda: []
@@ -1332,7 +1332,7 @@ class vmmConnection(vmmGObject):
         oldActiveIDs = {}
         oldInactiveNames = {}
 
-        origlist = self.vms
+        origlist = self.vms.copy()
         current = {}
         new = []
 
openSUSE Build Service is sponsored by