utils.py: fix remove obsolete dependencies

The obsolete dependency is the one which is in database but not in
conf/layer.conf anymore. The old code had a problem for newly created
layerbranch, the new layerbranch has no dependencies, so no need remove. And it
had a side effect was that when need_remove was cleaned up, it would be set
again in the next for loop, thus might wrongly remove dependencies. This patch
can fix the problem.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
Robert Yang 2017-12-27 13:52:52 +08:00 committed by Paul Eggleton
parent 11e5010b13
commit ab4693f8ab

View File

@ -122,7 +122,7 @@ def _add_dependency(var, name, layerbranch, config_data, logger=None, required=T
logger.debug('Error parsing %s_%s for %s\n%s' % (var, var_name, layer_name, str(vse)))
return
need_remove = None
need_remove = LayerDependency.objects.filter(layerbranch=layerbranch).filter(required=required)
for dep, ver_list in list(dep_dict.items()):
ver_str = None
if ver_list:
@ -142,9 +142,7 @@ def _add_dependency(var, name, layerbranch, config_data, logger=None, required=T
continue
# Preparing to remove obsolete ones
if not need_remove:
need_remove = LayerDependency.objects.filter(layerbranch=layerbranch).filter(required=required).exclude(dependency=dep_layer)
else:
if need_remove:
need_remove = need_remove.exclude(dependency=dep_layer)
# Skip existing entries.