[libvirt] [libvirt-glib][PATCH 2/2] gobject: Introduce gvir_connection_get_version
Daniel P. Berrange
berrange at redhat.com
Wed Sep 12 10:44:56 UTC 2012
On Tue, Sep 11, 2012 at 07:42:42PM +0200, Michal Privoznik wrote:
> which is basically a wrapper for virConnectGetVersion().
> ---
> examples/conn-test.c | 13 ++++++
> libvirt-gobject/libvirt-gobject-connection.c | 52 ++++++++++++++++++++++++++
> libvirt-gobject/libvirt-gobject-connection.h | 4 +-
> libvirt-gobject/libvirt-gobject.sym | 1 +
> 4 files changed, 69 insertions(+), 1 deletions(-)
>
> diff --git a/libvirt-gobject/libvirt-gobject-connection.c b/libvirt-gobject/libvirt-gobject-connection.c
> index f0be875..bc11151 100644
> --- a/libvirt-gobject/libvirt-gobject-connection.c
> +++ b/libvirt-gobject/libvirt-gobject-connection.c
> @@ -1078,6 +1078,58 @@ cleanup:
> return ret;
> }
>
> +/**
> + * gvir_connection_get_version:
> + * @conn: a #GVirConnection
> + * @version: return location for version
> + * @err: return location for any #GError
> + *
> + * Get version of current hypervisor used.
> + *
> + * Return value: TRUE on success, FALSE otherwise.
> + */
> +gboolean
> +gvir_connection_get_version(GVirConnection *conn,
> + gulong *version,
> + GError **err)
> +{
> + GVirConnectionPrivate *priv;
> + virConnectPtr vconn = NULL;
> + gboolean ret = FALSE;
> +
> + g_return_val_if_fail(GVIR_IS_CONNECTION(conn), FALSE);
> +
> + priv = conn->priv;
> + g_mutex_lock(priv->lock);
> + if (!priv->conn) {
> + g_set_error_literal(err, GVIR_CONNECTION_ERROR, 0,
> + "Connection is not open");
> + g_mutex_unlock(priv->lock);
> + goto cleanup;
> + }
> +
> + vconn = priv->conn;
> + /* Stop another thread closing the connection just at the minute */
> + virConnectRef(vconn);
> + g_mutex_unlock(priv->lock);
> +
> + if ( virConnectGetVersion(priv->conn, version) < 0) {
Bogus extra space after the first '('
> + gvir_set_error_literal(err, GVIR_CONNECTION_ERROR, 0,
> + "Unable to get hypervisor version");
> + goto cleanup;
> + }
> +
> + ret = TRUE;
> +
> +cleanup:
> + if (vconn) {
> + g_mutex_lock(priv->lock);
> + virConnectClose(vconn);
> + g_mutex_unlock(priv->lock);
No need for this extra locking here
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 :|
More information about the libvir-list
mailing list