From 71ff6571c603bea1bc27f1093b6679297ee0323d Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Mon, 5 Aug 2019 12:02:25 +1200 Subject: [PATCH] import_layers: import other missing items Import Machine, Distro, BBClass, BBAppend, IncFile objects. Signed-off-by: Paul Eggleton --- layerindex/tools/import_layers.py | 50 ++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/layerindex/tools/import_layers.py b/layerindex/tools/import_layers.py index 9e8cab4..e09c954 100755 --- a/layerindex/tools/import_layers.py +++ b/layerindex/tools/import_layers.py @@ -67,7 +67,7 @@ def main(): utils.setup_django() import settings - from layerindex.models import Branch, LayerItem, LayerBranch, LayerDependency, LayerMaintainer, LayerNote, Recipe, Source, Patch, PackageConfig, StaticBuildDep, DynamicBuildDep, RecipeFileDependency + from layerindex.models import Branch, LayerItem, LayerBranch, LayerDependency, LayerMaintainer, LayerNote, Recipe, Source, Patch, PackageConfig, StaticBuildDep, DynamicBuildDep, RecipeFileDependency, Machine, Distro, BBClass, BBAppend, IncFile from django.db import transaction logger.setLevel(options.loglevel) @@ -96,6 +96,11 @@ def main(): layermaintainers_url = jsdata.get('layerMaintainers', None) layernotes_url = jsdata.get('layerNotes', None) recipes_url = jsdata.get('recipes', None) + machines_url = jsdata.get('machines', None) + distros_url = jsdata.get('distros', None) + classes_url = jsdata.get('classes', None) + appends_url = jsdata.get('appends', None) + incfiles_url = jsdata.get('incFiles', None) logger.debug('Getting branches') @@ -303,6 +308,49 @@ def main(): custom_field_cb=recipe_field_handler, key_fields=['pn']) + if machines_url: + import_child_items(layerbranch, + Machine, + url=machines_url, + parent_orig_id=layerbranchjs['id'], + exclude_fields=['id', 'layerbranch', 'updated'], + key_fields=['name']) + + if distros_url: + import_child_items(layerbranch, + Distro, + url=distros_url, + parent_orig_id=layerbranchjs['id'], + exclude_fields=['id', 'layerbranch', 'updated'], + key_fields=['name']) + + # The models below don't have an "updated" field at present, but it does + # no harm to leave it as excluded in case it does get added in the future + + if classes_url: + import_child_items(layerbranch, + BBClass, + url=classes_url, + parent_orig_id=layerbranchjs['id'], + exclude_fields=['id', 'layerbranch', 'updated'], + key_fields=['name']) + + if appends_url: + import_child_items(layerbranch, + BBAppend, + url=appends_url, + parent_orig_id=layerbranchjs['id'], + exclude_fields=['id', 'layerbranch', 'updated'], + key_fields=['filename']) + + if incfiles_url: + import_child_items(layerbranch, + IncFile, + url=incfiles_url, + parent_orig_id=layerbranchjs['id'], + exclude_fields=['id', 'layerbranch', 'updated'], + key_fields=['path']) + # Get layer dependencies logger.debug('Importing layer dependencies')