mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
Fix storage pool refresh event signal
When creating a storage volume, it wouldn't show up in the list since the refresh signaling was busted. Code was using VIR_STORAGE_POOL_EVENT_REFRESHED which was dropped from lifecycle event type, refresh is introduced as top level event.
This commit is contained in:
parent
da81d4c32c
commit
44dd5ae0a6
@ -780,24 +780,28 @@ class vmmConnection(vmmGObject):
|
||||
name = pool.name()
|
||||
logging.debug("storage pool lifecycle event: storage=%s event=%s "
|
||||
"reason=%s", name, event, reason)
|
||||
is_event_refreshed = (event == getattr(
|
||||
libvirt, "VIR_STORAGE_POOL_EVENT_REFRESHED", 4))
|
||||
|
||||
if is_event_refreshed and not self.is_active():
|
||||
# We refresh() pools during connection startup, and this spams
|
||||
# the logs, so skip it.
|
||||
return
|
||||
|
||||
obj = self.get_pool(name)
|
||||
|
||||
if obj:
|
||||
if is_event_refreshed:
|
||||
self.idle_add(obj.refresh_pool_cache_from_event_loop)
|
||||
else:
|
||||
self.idle_add(obj.recache_from_event_loop)
|
||||
self.idle_add(obj.recache_from_event_loop)
|
||||
else:
|
||||
self.schedule_priority_tick(pollpool=True, force=True)
|
||||
|
||||
def _storage_pool_refresh_event(self, conn, pool, userdata):
|
||||
ignore = conn
|
||||
ignore = userdata
|
||||
|
||||
name = pool.name()
|
||||
logging.debug("storage pool refresh event: pool=%s", name)
|
||||
|
||||
obj = self.get_pool(name)
|
||||
|
||||
if not obj:
|
||||
return
|
||||
|
||||
self.idle_add(obj.refresh_pool_cache_from_event_loop)
|
||||
|
||||
def _node_device_lifecycle_event(self, conn, dev,
|
||||
event, reason, userdata):
|
||||
ignore = conn
|
||||
@ -882,9 +886,14 @@ class vmmConnection(vmmGObject):
|
||||
|
||||
eventid = getattr(libvirt,
|
||||
"VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE", 0)
|
||||
refreshid = getattr(libvirt,
|
||||
"VIR_STORAGE_POOL_EVENT_ID_REFRESH", 1)
|
||||
self._storage_pool_cb_ids.append(
|
||||
self.get_backend().storagePoolEventRegisterAny(
|
||||
None, eventid, self._storage_pool_lifecycle_event, None))
|
||||
self._storage_pool_cb_ids.append(
|
||||
self.get_backend().storagePoolEventRegisterAny(
|
||||
None, refreshid, self._storage_pool_refresh_event, None))
|
||||
self.using_storage_pool_events = True
|
||||
logging.debug("Using storage pool events")
|
||||
except Exception, e:
|
||||
|
Loading…
Reference in New Issue
Block a user