aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Reyna <David.Reyna@windriver.com>2015-03-31 01:58:11 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-04-17 11:53:34 +0100
commit4de721aa75a4aaad186312443726e6daa764934b (patch)
tree169576ed61ba3cedaab4a1274e9e3d3e03db0db6
parented741d022e9bd13cbef5c71e33b1e68cb2e42d9b (diff)
downloadbitbake-4de721aa75a4aaad186312443726e6daa764934b.tar.gz
toaster: add layer source in admin throws an error
Preset uninitialized object members to bootstrap new layer source creation. [YOCTO #7437] Signed-off-by: David Reyna <David.Reyna@windriver.com>
-rw-r--r--lib/toaster/orm/models.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/toaster/orm/models.py b/lib/toaster/orm/models.py
index 625eb1ee8..4a6ca8f2b 100644
--- a/lib/toaster/orm/models.py
+++ b/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: