[virt-tools-list] [PATCH] Fix storage pool refresh event signal
Cole Robinson
crobinso at redhat.com
Fri Aug 19 15:15:22 UTC 2016
On 08/18/2016 11:26 AM, Jovanka Gulicoska wrote:
> 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.
> ---
> virtManager/connection.py | 31 ++++++++++++++++++++-----------
> 1 file changed, 20 insertions(+), 11 deletions(-)
>
Fixes things for me. ACK, and pushed
Thanks,
Cole
> diff --git a/virtManager/connection.py b/virtManager/connection.py
> index 1e5fe07..4997918 100644
> --- a/virtManager/connection.py
> +++ b/virtManager/connection.py
> @@ -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:
>
More information about the virt-tools-list
mailing list