[yocto] [layerindex-web][PATCH v2 12/12] layerindex/update_layer.py: Preserve the recipedependency files
Liam R. Howlett
Liam.Howlett at windriver.com
Fri Oct 7 08:57:21 PDT 2016
From: Mark Hatle <mark.hatle at 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.hatle at windriver.com>
Signed-off-by: Liam R. Howlett <Liam.Howlett at 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
More information about the yocto
mailing list