<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">Hello,<br><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I am going to revert this patch because it messes up the class instantiation for layer sources saved through the admin. We need a better solution for 7437.<br><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Alex<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 16, 2015 at 3:47 PM, Alex DAMIAN <span dir="ltr"><<a href="mailto:alexandru.damian@intel.com" target="_blank">alexandru.damian@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: David Reyna <<a href="mailto:David.Reyna@windriver.com">David.Reyna@windriver.com</a>><br>
<br>
Preset uninitialized object members to bootstrap new layer source creation.<br>
<br>
[YOCTO #7437]<br>
<br>
Signed-off-by: David Reyna <<a href="mailto:David.Reyna@windriver.com">David.Reyna@windriver.com</a>><br>
---<br>
lib/toaster/orm/models.py | 20 ++++++++++++++------<br>
1 file changed, 14 insertions(+), 6 deletions(-)<br>
<br>
diff --git a/lib/toaster/orm/models.py b/lib/toaster/orm/models.py<br>
index 625eb1e..4a6ca8f 100644<br>
--- a/lib/toaster/orm/models.py<br>
+++ b/lib/toaster/orm/models.py<br>
@@ -640,17 +640,25 @@ class LayerSource(models.Model):<br>
raise Exception("Abstract, update() must be implemented by all LayerSource-derived classes (object is %s)" % str(vars(self)))<br>
<br>
def save(self, *args, **kwargs):<br>
- if isinstance(self, LocalLayerSource):<br>
- self.sourcetype = LayerSource.TYPE_LOCAL<br>
- elif isinstance(self, LayerIndexLayerSource):<br>
- self.sourcetype = LayerSource.TYPE_LAYERINDEX<br>
- elif isinstance(self, ImportedLayerSource):<br>
- self.sourcetype = LayerSource.TYPE_IMPORTED<br>
+ if self.sourcetype == LayerSource.TYPE_LOCAL:<br>
+ self.__class__ = LocalLayerSource<br>
+ elif self.sourcetype == LayerSource.TYPE_LAYERINDEX:<br>
+ self.__class__ = LayerIndexLayerSource<br>
+ elif self.sourcetype == LayerSource.TYPE_IMPORTED:<br>
+ self.__class__ = ImportedLayerSource<br>
elif self.sourcetype == None:<br>
raise Exception("Unknown LayerSource-derived class. If you added a new layer source type, fill out all code stubs.")<br>
return super(LayerSource, self).save(*args, **kwargs)<br>
<br>
def get_object(self):<br>
+ # preset an un-initilized object<br>
+ if None == <a href="http://self.name" target="_blank">self.name</a>:<br>
+ <a href="http://self.name" target="_blank">self.name</a>=""<br>
+ if None == self.apiurl:<br>
+ self.apiurl=""<br>
+ if None == self.sourcetype:<br>
+ self.sourcetype=LayerSource.TYPE_LOCAL<br>
+<br>
if self.sourcetype == LayerSource.TYPE_LOCAL:<br>
self.__class__ = LocalLayerSource<br>
elif self.sourcetype == LayerSource.TYPE_LAYERINDEX:<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.9.1<br>
<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr">Alex Damian<div>Yocto Project<br></div><div>SSG / OTC </div></div></div>
</div>