[Kimchi-devel] [PATCH 1/5] Bug fix: Use VIR_STORAGE_VOL_RESIZE_SHRINK flag when decreasing the volume size
Aline Manera
alinefm at linux.vnet.ibm.com
Thu Jan 22 14:36:49 UTC 2015
To decrease the volume size the flag VIR_STORAGE_VOL_RESIZE_SHRINK must
be used.
But even using this flag, libvirt is not able to resize the volume due
a bug: https://bugzilla.redhat.com/show_bug.cgi?id=1021802
Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
---
src/kimchi/model/storagevolumes.py | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/kimchi/model/storagevolumes.py b/src/kimchi/model/storagevolumes.py
index cb79966..6fbb8b4 100644
--- a/src/kimchi/model/storagevolumes.py
+++ b/src/kimchi/model/storagevolumes.py
@@ -366,8 +366,19 @@ class StorageVolumeModel(object):
def resize(self, pool, name, size):
volume = StorageVolumeModel.get_storagevolume(pool, name, self.conn)
+
+ # When decreasing the storage volume capacity, the flag
+ # VIR_STORAGE_VOL_RESIZE_SHRINK must be used
+ flags = 0
+ if volume.info()[1] > size:
+ # FIXME: Even using VIR_STORAGE_VOL_RESIZE_SHRINK flag it is not
+ # possible to decrease the volume capacity due a libvirt bug
+ # For reference:
+ # - https://bugzilla.redhat.com/show_bug.cgi?id=1021802
+ flags = libvirt.VIR_STORAGE_VOL_RESIZE_SHRINK
+
try:
- volume.resize(size, 0)
+ volume.resize(size, flags)
except libvirt.libvirtError as e:
raise OperationFailed("KCHVOL0011E",
{'name': name, 'err': e.get_error_message()})
--
2.1.0
More information about the Kimchi-devel
mailing list