From: Elliot Smith Date: Thu, 10 Dec 2015 03:56:36 +0000 (-0800) Subject: bitbake: toaster: Remove compatible_layerversions() method X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f001a4ac3cfd83405c85b62cf2509fab785bcf49;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git bitbake: toaster: Remove compatible_layerversions() method Remove compatible_layerversions() and replace calls to it with calls to get_all_compatible_layer_versions(). The sorting done in compatible_layerversions() is not relevant, and the code can be simplified by using get_all_compatible_layer_versions(). [YOCTO #8364] (Bitbake rev: 7bca51277314f7c0b6ee0e0d470327dfd60d37fe) Signed-off-by: Elliot Smith Signed-off-by: Ed Bartosh Signed-off-by: brian avery Signed-off-by: Richard Purdie --- diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index b25910aaac4..f07fedaf026 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py @@ -195,23 +195,6 @@ class Project(models.Model): except (Variable.DoesNotExist,IndexError): return( "not_found" ) - # returns a queryset of compatible layers for a project - def compatible_layerversions(self, release = None, layer_name = None): - logger.warning("This function is deprecated") - if release == None: - release = self.release - # layers on the same branch or layers specifically set for this project - queryset = Layer_Version.objects.filter(((Q(up_branch__name = release.branch_name) & Q(project = None)) | Q(project = self)) & Q(build__isnull=True)) - - if layer_name is not None: - # we select only a layer name - queryset = queryset.filter(layer__name = layer_name) - - # order by layer version priority - queryset = queryset.filter(Q(layer_source=None) | Q(layer_source__releaselayersourcepriority__release = release)).select_related('layer_source', 'layer', 'up_branch', "layer_source__releaselayersourcepriority__priority").order_by("-layer_source__releaselayersourcepriority__priority") - - return queryset - def get_all_compatible_layer_versions(self): """ Returns Queryset of all Layer_Versions which are compatible with this project""" @@ -1184,7 +1167,9 @@ class Layer_Version(models.Model): return self._handle_url_path(self.layer.vcs_web_tree_base_url, '') def get_equivalents_wpriority(self, project): - return project.compatible_layerversions(layer_name = self.layer.name) + layer_versions = project.get_all_compatible_layer_versions() + filtered = layer_versions.filter(layer__name = self.layer.name) + return filtered.order_by("-layer_source__releaselayersourcepriority__priority") def get_vcs_reference(self): if self.branch is not None and len(self.branch) > 0: diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 16f27b80222..bd334b9f801 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py @@ -2264,16 +2264,17 @@ if True: prj.bitbake_version = prj.release.bitbake_version prj.save() # we need to change the layers - for i in prj.projectlayer_set.all(): + for project in prj.projectlayer_set.all(): # find and add a similarly-named layer on the new branch try: - lv = prj.compatible_layerversions(layer_name = i.layercommit.layer.name)[0] - ProjectLayer.objects.get_or_create(project = prj, layercommit = lv) + layer_versions = prj.get_all_compatible_layer_versions() + layer_versions = layer_versions.filter(layer__name = project.layercommit.layer.name) + ProjectLayer.objects.get_or_create(project = prj, layercommit = layer_versions.first()) except IndexError: pass finally: # get rid of the old entry - i.delete() + project.delete() if 'machineName' in request.POST: machinevar = prj.projectvariable_set.get(name="MACHINE") @@ -2383,12 +2384,17 @@ if True: retval = [] - for i in prj.projectlayer_set.all(): - lv = prj.compatible_layerversions(release = Release.objects.get(pk=new_release_id)).filter(layer__name = i.layercommit.layer.name) + for project in prj.projectlayer_set.all(): + release = Release.objects.get(pk = new_release_id) + + layer_versions = prj.get_all_compatible_layer_versions() + layer_versions = layer_versions.filter(release = release) + layer_versions = layer_versions.filter(layer__name = project.layercommit.layer.name) + # there is no layer_version with the new release id, # and the same name - if lv.count() < 1: - retval.append(i) + if layer_versions.count() < 1: + retval.append(project) return response({"error":"ok", "rows" : map( _lv_to_dict(prj),