From: Mark Hatle <mark.ha...@windriver.com> In order to keep primary keys from constantly changing, preverse the exist keys as much as possible.
Signed-off-by: Mark Hatle <mark.ha...@windriver.com> Signed-off-by: Liam R. Howlett <liam.howl...@windriver.com> --- layerindex/update_layer.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py index 27d4ebe..ec40806 100644 --- a/layerindex/update_layer.py +++ b/layerindex/update_layer.py @@ -88,13 +88,30 @@ def update_recipe_file(tinfoil, data, path, recipe, layerdir_start, repodir): if depstr.startswith(layerdir_start) and not depstr.endswith('/conf/layer.conf'): filedeps.append(os.path.relpath(depstr, repodir)) from layerindex.models import RecipeFileDependency - RecipeFileDependency.objects.filter(recipe=recipe).delete() + + recipedeps_delete = [] + + recipedeps = RecipeFileDependency.objects.filter(recipe=recipe) + + for values in recipedeps.values('path'): + if 'path' in values: + recipedeps_delete.append(values['path']) + for filedep in filedeps: + if filedep in recipedeps_delete: + recipedeps_delete.remove(filedep) + continue + # New item, add it... recipedep = RecipeFileDependency() recipedep.layerbranch = recipe.layerbranch recipedep.recipe = recipe recipedep.path = filedep recipedep.save() + + for filedep in recipedeps_delete: + logger.debug('%s: removing %s' % (recipe.layerbranch, filedep)) + recipedeps.filter(path=filedep).delete() + except KeyboardInterrupt: raise except BaseException as e: -- 1.9.1 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto