From: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
There are several reasons when failed to start domain.
we should catch the libvirtError.
issue:
https://github.com/kimchi-project/kimchi/issues/289
Signed-off-by: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
---
src/kimchi/i18n.py | 1 +
src/kimchi/model/vms.py | 6 +++++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
index dfc1b2b..fc4b1ff 100644
--- a/src/kimchi/i18n.py
+++ b/src/kimchi/i18n.py
@@ -76,6 +76,7 @@ messages = {
"KCHVM0016E": _("Specify a template to create a virtual machine
from"),
"KCHVM0017E": _("Volume list (LUNs names) not given."),
"KCHVM0018E": _("Virtual machine volumes must be a list of strings
with distinct LUNs names."),
+ "KCHVM0019E": _("Unable to start virtual machine %(name)s. Details:
%(err)s"),
"KCHVMIF0001E": _("Interface %(iface)s does not exist in virtual
machine %(name)s"),
"KCHVMIF0002E": _("Network %(network)s specified for virtual machine
%(name)s does not exist"),
diff --git a/src/kimchi/model/vms.py b/src/kimchi/model/vms.py
index 9da6688..b6a42e6 100644
--- a/src/kimchi/model/vms.py
+++ b/src/kimchi/model/vms.py
@@ -376,7 +376,11 @@ class VMModel(object):
run_setfacl_set_attr(iso)
dom = self.get_vm(name, self.conn)
- dom.create()
+ try:
+ dom.create()
+ except libvirt.libvirtError as e:
+ raise OperationFailed("KCHVM0019E",
+ {'name': name, 'err':
e.get_error_message()})
def stop(self, name):
if self._vm_exists(name):
--
1.8.4.2