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 :|