[Kimchi-devel] [PATCH][Kimchi 2/4] Fix checking duplicate template before creating it

Aline Manera alinefm at linux.vnet.ibm.com
Wed Apr 6 19:07:09 UTC 2016


The same comments I did in the previous patch version.

http://lists.ovirt.org/pipermail/kimchi-devel/2016-April/014338.html

On 04/06/2016 01:18 AM, Ramon Medeiros wrote:
> Template was being check if duplicated after calling for VMTemplate,
> which can make unecessary work. Check it before creating the class.
>
> Signed-off-by: Ramon Medeiros <ramonn at linux.vnet.ibm.com>
> ---
>   model/templates.py | 11 +++++++----
>   1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/model/templates.py b/model/templates.py
> index 92705b6..28c8a08 100644
> --- a/model/templates.py
> +++ b/model/templates.py
> @@ -52,6 +52,12 @@ class TemplatesModel(object):
>       def create(self, params):
>           name = params.get('name', '').strip()
>           iso = params.get('cdrom')
> +
> +        # template with the same name already exists: raise exception
> +        with self.objstore as session:
> +            if name in session.get_list('template'):
> +                raise InvalidOperation("KCHTMPL0001E", {'name': name})
> +
>           # check search permission
>           if iso and iso.startswith('/') and os.path.exists(iso):
>               st_mode = os.stat(iso).st_mode
> @@ -72,8 +78,7 @@ class TemplatesModel(object):
>                   raise InvalidParameter("KCHTMPL0003E", {'network': net_name,
>                                                           'template': name})
>           # Creates the template class with necessary information
> -        # Checkings will be done while creating this class, so any exception
> -        # will be raised here
> +
>           t = LibvirtVMTemplate(params, scan=True, conn=self.conn)
>
>           # Validate cpu info
> @@ -93,8 +98,6 @@ class TemplatesModel(object):
>           name = params['name']
>           try:
>               with self.objstore as session:
> -                if name in session.get_list('template'):
> -                    raise InvalidOperation("KCHTMPL0001E", {'name': name})
>                   session.store('template', name, t.info,
>                                 get_kimchi_version())
>           except InvalidOperation:




More information about the Kimchi-devel mailing list