Tested-by: Socorro Stoppler <socorro(a)linux.vnet.ibm.com>
On 05/05/2016 02:36 PM, Aline Manera wrote:
When trying to create a VM from a recent created remote ISO Template,
an error
was raised:
Error in async_task 1
Traceback (most recent call last):
File "/home/alinefm/wok/src/wok/asynctask.py", line 72, in _run_helper
self.fn(cb, opaque)
File "/home/alinefm/wok/src/wok/plugins/kimchi/model/vms.py", line 168, in
_create_task
vol_list = t.fork_vm_storage(vm_uuid)
File "/home/alinefm/wok/src/wok/plugins/kimchi/model/templates.py", line
397, in fork_vm_storage
vol_list = self.to_volume_list(vm_uuid)
File "/home/alinefm/wok/src/wok/plugins/kimchi/vmtemplate.py", line 262, in
to_volume_list
base_fmt = imageinfo.probe_img_info(d['base'])['format']
File "/home/alinefm/wok/src/wok/plugins/kimchi/imageinfo.py", line 40, in
probe_img_info
info['actual-size'] = info['actual-size'] >> 30
KeyError: 'actual-size'
It was because the remote ISO path was being set as CDROM and also as
base image, causing the issue when creating the VM.
Fix it.
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
model/templates.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/model/templates.py b/model/templates.py
index 131f86b..5cdac00 100644
--- a/model/templates.py
+++ b/model/templates.py
@@ -68,10 +68,9 @@ class TemplatesModel(object):
if source_media['type'] == 'netboot':
params['netboot'] = True
return self.save_template(params)
- else:
- # Get path of source media if it's based on disk type.
- path = source_media.get('path', None)
+ # Get path of source media if it's based on disk type.
+ path = source_media.get('path', None)
if path is None:
raise InvalidParameter("KCHTMPL0016E")
@@ -80,9 +79,10 @@ class TemplatesModel(object):
if urlparse.urlparse(path).scheme in ["http", "https",
"tftp", "ftp",
"ftps"]:
params["cdrom"] = path
+ return self.save_template(params)
- # image does not exists: raise error
- elif not os.path.exists(path):
+ # Local file (ISO/Img) does not exist: raise error
+ if not os.path.exists(path):
raise InvalidParameter("KCHTMPL0002E", {'path': path})
# create magic object to discover file type