On Thu, Dec 01, 2011 at 12:02:48PM +0100, Christophe Fergeau wrote: > On Wed, Nov 30, 2011 at 08:11:30PM +0200, Zeeshan Ali (Khattak) wrote: > > From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx> > > > > --- > > libvirt-gobject/libvirt-gobject-storage-pool.c | 44 ++++++++++++++++++++++++ > > libvirt-gobject/libvirt-gobject-storage-pool.h | 21 +++++++++++ > > libvirt-gobject/libvirt-gobject.sym | 2 + > > 3 files changed, 67 insertions(+), 0 deletions(-) > > > > diff --git a/libvirt-gobject/libvirt-gobject-storage-pool.c b/libvirt-gobject/libvirt-gobject-storage-pool.c > > index da8ada5..3c30a3d 100644 > > --- a/libvirt-gobject/libvirt-gobject-storage-pool.c > > +++ b/libvirt-gobject/libvirt-gobject-storage-pool.c > > @@ -189,6 +189,21 @@ gvir_storage_pool_handle_free(GVirStoragePoolHandle *src) > > G_DEFINE_BOXED_TYPE(GVirStoragePoolHandle, gvir_storage_pool_handle, > > gvir_storage_pool_handle_copy, gvir_storage_pool_handle_free) > > > > +static GVirStoragePoolInfo * > > +gvir_storage_pool_info_copy(GVirStoragePoolInfo *info) > > +{ > > + return g_slice_dup(GVirStoragePoolInfo, info); > > +} > > + > > +static void > > +gvir_storage_pool_info_free(GVirStoragePoolInfo *info) > > +{ > > + g_slice_free(GVirStoragePoolInfo, info); > > +} > > + > > +G_DEFINE_BOXED_TYPE(GVirStoragePoolInfo, gvir_storage_pool_info, > > + gvir_storage_pool_info_copy, gvir_storage_pool_info_free) > > + > > const gchar *gvir_storage_pool_get_name(GVirStoragePool *pool) > > { > > GVirStoragePoolPrivate *priv = pool->priv; > > @@ -237,6 +252,35 @@ GVirConfigStoragePool *gvir_storage_pool_get_config(GVirStoragePool *pool, > > return conf; > > } > > > > +/** > > + * gvir_storage_pool_get_info: > > + * @pool: the storage_pool > > + * Returns: (transfer full): the info > > + */ > > +GVirStoragePoolInfo *gvir_storage_pool_get_info(GVirStoragePool *pool, > > + GError **err) > > +{ > > + GVirStoragePoolPrivate *priv = pool->priv; > > + virStoragePoolInfo info; > > + GVirStoragePoolInfo *ret; > > + > > + if (virStoragePoolGetInfo(priv->handle, &info) < 0) { > > + if (err) > > + *err = gvir_error_new_literal(GVIR_STORAGE_POOL_ERROR, > > + 0, > > + "Unable to get storage pool info"); > > + return NULL; > > + } > > + > > + ret = g_slice_new(GVirStoragePoolInfo); > > + ret->state = info.state; > > + ret->capacity = info.capacity; > > + ret->allocation = info.allocation; > > + ret->available = info.available; > > + > > + return ret; > > +} > > + > > Any idea if this is always non blocking, or if it can take time if the > storage is remote ? This is always fast - it isn't updated unless you do a virStoragePoolRefresh Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list