[Kimchi-devel] [PATCH] Pass through libvirt error if storage create fails

Christy Perez christy at linux.vnet.ibm.com
Fri Nov 21 21:04:21 UTC 2014


A user experienced an error while creating a VM using
logical storage. If a disk size greater than the available
capacity of a pool is requested, the pool.createXML fails,
but the user gets the generic kimchi "unexpected error" message.
This patch puts a try block around the createXML call, and
catches the libvirt error so it can be shown to the user.

Signed-off-by: Christy Perez <christy at linux.vnet.ibm.com>
---
 src/kimchi/model/templates.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/kimchi/model/templates.py b/src/kimchi/model/templates.py
index 6e1a571..475f878 100644
--- a/src/kimchi/model/templates.py
+++ b/src/kimchi/model/templates.py
@@ -290,7 +290,10 @@ def fork_vm_storage(self, vm_uuid):
         # TODO: Rebase on the storage API once upstream
         pool = self._storage_validate()
         vol_list = self.to_volume_list(vm_uuid)
-        for v in vol_list:
-            # outgoing text to libvirt, encode('utf-8')
-            pool.createXML(v['xml'].encode('utf-8'), 0)
+        try:
+            for v in vol_list:
+                # outgoing text to libvirt, encode('utf-8')
+                pool.createXML(v['xml'].encode('utf-8'), 0)
+        except libvirt.libvirtError as e:
+            raise OperationFailed("KCHVMSTOR0008E", {'error': e.message})
         return vol_list
-- 
1.9.3




More information about the Kimchi-devel mailing list