
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- model/templates.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/model/templates.py b/model/templates.py index 2a722b9..1b2be0e 100644 --- a/model/templates.py +++ b/model/templates.py @@ -51,7 +51,11 @@ class TemplatesModel(object): def create(self, params): name = params.get('name', '').strip() - iso = params.get('cdrom') + if params.get('force_no_cdrom', None) is None: + iso = None + else: + iso = params.get('cdrom') + # check search permission if iso and iso.startswith('/') and os.path.exists(iso): st_mode = os.stat(iso).st_mode @@ -74,7 +78,10 @@ class TemplatesModel(object): # 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) + scan = False + if params.get('force_no_cdrom', None) is None: + scan = True + t = LibvirtVMTemplate(params, scan=scan, conn=self.conn) # Validate cpu info t.cpuinfo_validate() @@ -206,6 +213,13 @@ class TemplateModel(object): 'template': name}) self.delete(name) + + # if the cdrom is invalid (if it was removed) the template will be + # deleted but never replaced back, users won't understand why because + # it's not clear. In this sceario, since a are replacing an existing + # temaplte, let's create it anyway and gives the user a chance to + # fix the cdrom name. + new_t['force_no_cdrom'] = True try: ident = self.templates.create(new_t) except: -- 1.9.1