[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [libvirt-glib] Add gvir_storage_vol_resize()



From: "Zeeshan Ali (Khattak)" <zeeshanak gnome org>

Add wrapper for virStorageVolResize().
---
 libvirt-gobject/libvirt-gobject-storage-vol.c |   27 +++++++++++++++++++++++++
 libvirt-gobject/libvirt-gobject-storage-vol.h |   20 ++++++++++++++++++
 libvirt-gobject/libvirt-gobject.sym           |    1 +
 3 files changed, 48 insertions(+), 0 deletions(-)

diff --git a/libvirt-gobject/libvirt-gobject-storage-vol.c b/libvirt-gobject/libvirt-gobject-storage-vol.c
index 491e2e6..78ce76e 100644
--- a/libvirt-gobject/libvirt-gobject-storage-vol.c
+++ b/libvirt-gobject/libvirt-gobject-storage-vol.c
@@ -299,3 +299,30 @@ gboolean gvir_storage_vol_delete(GVirStorageVol *vol,
 
     return TRUE;
 }
+
+/**
+ * gvir_storage_vol_resize:
+ * @vol: the storage volume to resize
+ * @capacity: the new capacity of the volume
+ * @flags: (type GVirStorageVolResizeFlags): the flags
+ * @err: Return location for errors, or NULL
+ *
+ * Changes the capacity of the storage volume @vol to @capacity.
+ *
+ * Returns: #TRUE success, #FALSE otherwise
+ */
+gboolean gvir_storage_vol_resize(GVirStorageVol *vol,
+                                 guint64 capacity,
+                                 guint flags,
+                                 GError **err)
+{
+    if (virStorageVolResize(vol->priv->handle, capacity, flags) < 0) {
+        gvir_set_error_literal(err,
+                               GVIR_STORAGE_VOL_ERROR,
+                               0,
+                               "Unable to resize volume storage");
+        return FALSE;
+    }
+
+    return TRUE;
+}
diff --git a/libvirt-gobject/libvirt-gobject-storage-vol.h b/libvirt-gobject/libvirt-gobject-storage-vol.h
index 25f683a..b425f0a 100644
--- a/libvirt-gobject/libvirt-gobject-storage-vol.h
+++ b/libvirt-gobject/libvirt-gobject-storage-vol.h
@@ -23,6 +23,7 @@
 #if !defined(__LIBVIRT_GOBJECT_H__) && !defined(LIBVIRT_GOBJECT_BUILD)
 #error "Only <libvirt-gobject/libvirt-gobject.h> can be included directly."
 #endif
+#include <libvirt/libvirt.h>
 
 #ifndef __LIBVIRT_GOBJECT_STORAGE_VOL_H__
 #define __LIBVIRT_GOBJECT_STORAGE_VOL_H__
@@ -65,6 +66,21 @@ typedef enum {
     GVIR_STORAGE_VOL_STATE_DIR   = 2, /* Directory-passthrough based volume */
 } GVirStorageVolType;
 
+/**
+ * GVirStorageVolResizeFlags:
+ * @GVIR_STORAGE_VOL_RESIZE_NONE: No flags
+ * @GVIR_STORAGE_VOL_RESIZE_ALLOCATE: force allocation of new size
+ * @GVIR_STORAGE_VOL_RESIZE_DELTA: size is relative to current
+ * @GVIR_STORAGE_VOL_RESIZE_SHRINK: allow decrease in capacity. This combined
+ * with #GVIR_STORAGE_VOL_RESIZE_DELTA, implies a negative delta.
+ */
+typedef enum {
+    GVIR_STORAGE_VOL_RESIZE_NONE     = 0,
+    GVIR_STORAGE_VOL_RESIZE_ALLOCATE = VIR_STORAGE_VOL_RESIZE_ALLOCATE,
+    GVIR_STORAGE_VOL_RESIZE_DELTA    = VIR_STORAGE_VOL_RESIZE_DELTA,
+    GVIR_STORAGE_VOL_RESIZE_SHRINK   = VIR_STORAGE_VOL_RESIZE_SHRINK,
+} GVirStorageVolResizeFlags;
+
 typedef struct _GVirStorageVolInfo GVirStorageVolInfo;
 struct _GVirStorageVolInfo
 {
@@ -89,6 +105,10 @@ GVirConfigStorageVol *gvir_storage_vol_get_config(GVirStorageVol *vol,
                                                   GError **err);
 GVirStorageVolInfo *gvir_storage_vol_get_info(GVirStorageVol *vol,
                                               GError **err);
+gboolean gvir_storage_vol_resize(GVirStorageVol *vol,
+                                 guint64 capacity,
+                                 guint flags,
+                                 GError **err);
 
 G_END_DECLS
 
diff --git a/libvirt-gobject/libvirt-gobject.sym b/libvirt-gobject/libvirt-gobject.sym
index a4f03f7..468bf65 100644
--- a/libvirt-gobject/libvirt-gobject.sym
+++ b/libvirt-gobject/libvirt-gobject.sym
@@ -126,6 +126,7 @@ LIBVIRT_GOBJECT_0.0.4 {
 	gvir_storage_vol_get_config;
 	gvir_storage_vol_get_info;
 	gvir_storage_vol_delete;
+	gvir_storage_vol_resize;
 
 	gvir_connection_handle_get_type;
 
-- 
1.7.7.6


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]