mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-02 09:47:16 +03:00
connection: Use weakref.proxy instead of weakref.ref
Works more like expected, let's us drop a hack in devicedisk
This commit is contained in:
parent
657c729f08
commit
281e796538
@ -162,7 +162,7 @@ class VirtinstConnection(object):
|
||||
def _fetch_all_domains_raw(self):
|
||||
ignore, ignore, ret = pollhelpers.fetch_vms(
|
||||
self, {}, lambda obj, ignore: obj)
|
||||
return [Guest(weakref.ref(self), parsexml=obj.XMLDesc(0))
|
||||
return [Guest(weakref.proxy(self), parsexml=obj.XMLDesc(0))
|
||||
for obj in ret]
|
||||
|
||||
def fetch_all_domains(self):
|
||||
@ -178,7 +178,7 @@ class VirtinstConnection(object):
|
||||
return self._fetch_cache[key][:]
|
||||
|
||||
def _build_pool_raw(self, poolobj):
|
||||
return StoragePool(weakref.ref(self),
|
||||
return StoragePool(weakref.proxy(self),
|
||||
parsexml=poolobj.XMLDesc(0))
|
||||
|
||||
def _fetch_all_pools_raw(self):
|
||||
@ -210,7 +210,7 @@ class VirtinstConnection(object):
|
||||
for vol in vols:
|
||||
try:
|
||||
xml = vol.XMLDesc(0)
|
||||
ret.append(StorageVolume(weakref.ref(self), parsexml=xml))
|
||||
ret.append(StorageVolume(weakref.proxy(self), parsexml=xml))
|
||||
except Exception as e:
|
||||
logging.debug("Fetching volume XML failed: %s", e)
|
||||
return ret
|
||||
@ -261,7 +261,7 @@ class VirtinstConnection(object):
|
||||
def _fetch_all_nodedevs_raw(self):
|
||||
ignore, ignore, ret = pollhelpers.fetch_nodedevs(
|
||||
self, {}, lambda obj, ignore: obj)
|
||||
return [NodeDevice(weakref.ref(self), obj.XMLDesc(0))
|
||||
return [NodeDevice(weakref.proxy(self), obj.XMLDesc(0))
|
||||
for obj in ret]
|
||||
|
||||
def fetch_all_nodedevs(self):
|
||||
|
@ -707,12 +707,9 @@ class DeviceDisk(Device):
|
||||
path = self._build_url_from_network_source()
|
||||
|
||||
if typ == DeviceDisk.TYPE_VOLUME:
|
||||
conn = self.conn
|
||||
if "weakref" in str(type(conn)):
|
||||
conn = conn()
|
||||
|
||||
try:
|
||||
parent_pool = conn.storagePoolLookupByName(self.source_pool)
|
||||
parent_pool = self.conn.storagePoolLookupByName(
|
||||
self.source_pool)
|
||||
vol_object = parent_pool.storageVolLookupByName(
|
||||
self.source_volume)
|
||||
except Exception as e:
|
||||
|
Loading…
x
Reference in New Issue
Block a user