mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
models: implement layerindex method to get recursive dependencies
It would be useful in some scenarios to get the complete list of recursive dependencies for a layer, so add a function to do that. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
parent
a6aaa5c8ef
commit
009adcb8df
|
@ -280,6 +280,24 @@ class LayerBranch(models.Model):
|
||||||
def get_recommends(self):
|
def get_recommends(self):
|
||||||
return self.dependencies_set.filter(required=False)
|
return self.dependencies_set.filter(required=False)
|
||||||
|
|
||||||
|
def get_recursive_dependencies(self, required=True, include_self=False):
|
||||||
|
deplist = []
|
||||||
|
def recurse_deps(layerbranch):
|
||||||
|
deplist.append(layerbranch)
|
||||||
|
if required:
|
||||||
|
dep_set = layerbranch.dependencies_set.filter(required=True)
|
||||||
|
else:
|
||||||
|
dep_set = layerbranch.dependencies_set.all()
|
||||||
|
for dep in dep_set:
|
||||||
|
deplayerbranch = dep.dependency.get_layerbranch(layerbranch.branch.name)
|
||||||
|
if deplayerbranch and deplayerbranch not in deplist:
|
||||||
|
recurse_deps(deplayerbranch)
|
||||||
|
recurse_deps(self)
|
||||||
|
if include_self:
|
||||||
|
return deplist
|
||||||
|
else:
|
||||||
|
return deplist[1:]
|
||||||
|
|
||||||
class LayerMaintainer(models.Model):
|
class LayerMaintainer(models.Model):
|
||||||
MAINTAINER_STATUS_CHOICES = (
|
MAINTAINER_STATUS_CHOICES = (
|
||||||
('A', 'Active'),
|
('A', 'Active'),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user