[Kimchi-devel] [PATCH] [Kimchi] Bug fix: Create VM based on Remote ISO Template

Socorro Stoppler socorro at linux.vnet.ibm.com
Thu May 5 22:41:51 UTC 2016


Tested-by: Socorro Stoppler <socorro at 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 at 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




More information about the Kimchi-devel mailing list