From ac69236d1d7dd27e7a73c590b34e78aed8bb0cce Mon Sep 17 00:00:00 2001 From: David Reyna Date: Tue, 31 Mar 2015 01:58:11 -0700 Subject: bitbake: toaster: add layer source in admin throws an error Preset uninitialized object members to bootstrap new layer source creation. [YOCTO #7437] (Bitbake rev: 4de721aa75a4aaad186312443726e6daa764934b) Signed-off-by: David Reyna Signed-off-by: Richard Purdie --- bitbake/lib/toaster/orm/models.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index 625eb1ee85..4a6ca8f2b1 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py @@ -640,17 +640,25 @@ class LayerSource(models.Model): raise Exception("Abstract, update() must be implemented by all LayerSource-derived classes (object is %s)" % str(vars(self))) def save(self, *args, **kwargs): - if isinstance(self, LocalLayerSource): - self.sourcetype = LayerSource.TYPE_LOCAL - elif isinstance(self, LayerIndexLayerSource): - self.sourcetype = LayerSource.TYPE_LAYERINDEX - elif isinstance(self, ImportedLayerSource): - self.sourcetype = LayerSource.TYPE_IMPORTED + if self.sourcetype == LayerSource.TYPE_LOCAL: + self.__class__ = LocalLayerSource + elif self.sourcetype == LayerSource.TYPE_LAYERINDEX: + self.__class__ = LayerIndexLayerSource + elif self.sourcetype == LayerSource.TYPE_IMPORTED: + self.__class__ = ImportedLayerSource elif self.sourcetype == None: raise Exception("Unknown LayerSource-derived class. If you added a new layer source type, fill out all code stubs.") return super(LayerSource, self).save(*args, **kwargs) def get_object(self): + # preset an un-initilized object + if None == self.name: + self.name="" + if None == self.apiurl: + self.apiurl="" + if None == self.sourcetype: + self.sourcetype=LayerSource.TYPE_LOCAL + if self.sourcetype == LayerSource.TYPE_LOCAL: self.__class__ = LocalLayerSource elif self.sourcetype == LayerSource.TYPE_LAYERINDEX: -- cgit v1.2.3-54-g00ecf