def CreateTemplate(self, templateDescription): self.ValidateArgs() # Validating Templates try: if self.OpenTemplate() is not None: raise err.Conflict( "A Template with the name '{0}' already exists !".format( self.templateName)) return None except err.Conflict as ex: if "Unable to find a Project" in str(ex): return None if "Unable to find a Schema" in str(ex): return None if "already exists" in str(ex): raise err.Conflict( "A Template with the name '{0}' already exists !".format( self.templateName)) return None # Creating Template try: jsonContent = js.Load(fl.Read(self.schemaMetaData)) jsonContent["Templates"].append(self.templateName) fl.Write(self.schemaMetaData, js.Dump(jsonContent), True) fl.Write(self.templateMetaData, "", True) return "Template '{0}' created successfully !".format( self.templateName) except WindowsError: raise err.Conflict( "There are errors in the metadata file. Synchronize the data to fix them !" ) except OSError: raise err.Conflict( "There are errors in the metadata file. Synchronize the data to fix them !" ) if os.path.exists(self.templateMetaData): os.remove(self.templateMetaData) return None