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:
Jovanka Gulicoska 2016-08-18 17:26:02 +02:00 committed by Cole Robinson
parent da81d4c32c
commit 44dd5ae0a6

View File

@ -780,24 +780,28 @@ class vmmConnection(vmmGObject):
name = pool.name() name = pool.name()
logging.debug("storage pool lifecycle event: storage=%s event=%s " logging.debug("storage pool lifecycle event: storage=%s event=%s "
"reason=%s", name, event, reason) "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) obj = self.get_pool(name)
if obj: 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: else:
self.schedule_priority_tick(pollpool=True, force=True) 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, def _node_device_lifecycle_event(self, conn, dev,
event, reason, userdata): event, reason, userdata):
ignore = conn ignore = conn
@ -882,9 +886,14 @@ class vmmConnection(vmmGObject):
eventid = getattr(libvirt, eventid = getattr(libvirt,
"VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE", 0) "VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE", 0)
refreshid = getattr(libvirt,
"VIR_STORAGE_POOL_EVENT_ID_REFRESH", 1)
self._storage_pool_cb_ids.append( self._storage_pool_cb_ids.append(
self.get_backend().storagePoolEventRegisterAny( self.get_backend().storagePoolEventRegisterAny(
None, eventid, self._storage_pool_lifecycle_event, None)) 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 self.using_storage_pool_events = True
logging.debug("Using storage pool events") logging.debug("Using storage pool events")
except Exception, e: except Exception, e: