[libvirt] [libvirt-glib] storage-pool: API to get/set autostart flag

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Mon May 18 14:11:07 UTC 2015


Add binding for virStoragePoolGetAutostart & virStoragePoolSetAutostart.
---
 libvirt-gobject/libvirt-gobject-storage-pool.c | 52 ++++++++++++++++++++++++++
 libvirt-gobject/libvirt-gobject-storage-pool.h |  5 +++
 libvirt-gobject/libvirt-gobject.sym            |  6 +++
 3 files changed, 63 insertions(+)

diff --git a/libvirt-gobject/libvirt-gobject-storage-pool.c b/libvirt-gobject/libvirt-gobject-storage-pool.c
index f3eac0d..e520c6a 100644
--- a/libvirt-gobject/libvirt-gobject-storage-pool.c
+++ b/libvirt-gobject/libvirt-gobject-storage-pool.c
@@ -1048,6 +1048,58 @@ gboolean gvir_storage_pool_delete (GVirStoragePool *pool,
     return TRUE;
 }
 
+/**
+ * gvir_storage_pool_get_autostart:
+ * @pool: the storage pool
+ * @err: return location for any #GError
+ *
+ * Return value: #True if autostart is enabled, #False otherwise.
+ */
+gboolean gvir_storage_pool_get_autostart(GVirStoragePool *pool,
+                                         GError **err)
+{
+    gboolean ret = FALSE;
+
+    g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), ret);
+    g_return_val_if_fail(err == NULL || *err == NULL, ret);
+
+    if (virStoragePoolGetAutostart(pool->priv->handle, &ret)) {
+        gvir_set_error_literal(err, GVIR_STORAGE_POOL_ERROR,
+                               0,
+                               "Failed to get autostart flag from storage pool");
+        return FALSE;
+    }
+
+    return ret;
+}
+
+/**
+ * gvir_storage_pool_set_autostart:
+ * @pool: the storage pool
+ * @autostart: New value for autostart flag
+ * @err: return location for any #GError
+ *
+ * Sets whether or not storage pool @pool is started automatically on boot.
+ *
+ * Return value: #TRUE on success, #FALSE otherwise.
+ */
+gboolean gvir_storage_pool_set_autostart(GVirStoragePool *pool,
+                                         gboolean autostart,
+                                         GError **err)
+{
+    g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE);
+    g_return_val_if_fail(err == NULL || *err == NULL, FALSE);
+
+    if (virStoragePoolSetAutostart(pool->priv->handle, autostart)) {
+        gvir_set_error_literal(err, GVIR_STORAGE_POOL_ERROR,
+                               0,
+                               "Failed to set autostart flag on storage pool");
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
 static void
 gvir_storage_pool_delete_helper(GSimpleAsyncResult *res,
                                 GObject *object,
diff --git a/libvirt-gobject/libvirt-gobject-storage-pool.h b/libvirt-gobject/libvirt-gobject-storage-pool.h
index f8529f0..f7f879c 100644
--- a/libvirt-gobject/libvirt-gobject-storage-pool.h
+++ b/libvirt-gobject/libvirt-gobject-storage-pool.h
@@ -166,6 +166,11 @@ void gvir_storage_pool_delete_async (GVirStoragePool *pool,
 gboolean gvir_storage_pool_delete_finish(GVirStoragePool *pool,
                                          GAsyncResult *result,
                                          GError **err);
+gboolean gvir_storage_pool_get_autostart(GVirStoragePool *pool,
+                                         GError **err);
+gboolean gvir_storage_pool_set_autostart(GVirStoragePool *pool,
+                                         gboolean autostart,
+                                         GError **err);
 
 G_END_DECLS
 
diff --git a/libvirt-gobject/libvirt-gobject.sym b/libvirt-gobject/libvirt-gobject.sym
index 927cad9..dcda675 100644
--- a/libvirt-gobject/libvirt-gobject.sym
+++ b/libvirt-gobject/libvirt-gobject.sym
@@ -265,4 +265,10 @@ LIBVIRT_GOBJECT_0.2.0 {
 	gvir_domain_open_graphics_fd;
 } LIBVIRT_GOBJECT_0.1.9;
 
+LIBVIRT_GOBJECT_0.2.1 {
+  global:
+	gvir_storage_pool_get_autostart;
+	gvir_storage_pool_set_autostart;
+} LIBVIRT_GOBJECT_0.2.0;
+
 # .... define new API here using predicted next version number ....
-- 
2.1.0




More information about the libvir-list mailing list