[oe-commits] [bitbake] 09/10: toaster: layerindex updater Take into account layers being predefined
git at git.openembedded.org
git at git.openembedded.org
Wed Nov 23 11:00:49 UTC 2016
rpurdie pushed a commit to branch master
in repository bitbake.
commit f981b68f66718d5b196684f4e378a5f195ff0337
Author: Michael Wood <michael.g.wood at intel.com>
AuthorDate: Wed Nov 9 19:52:34 2016 -0800
toaster: layerindex updater Take into account layers being predefined
As we can now provide layer definitions through fixtures we need to be
more clever how we update the metadata in the database to avoid
duplicate metadata being created. To do this we make more effort to
match existing data in the database and update only the fields which
will be better provided by the layer index.
This removes the need for us to special case layers which are provided
as part of poky such as openembedded-core or meta-poky which exist on
the layerindex but with different git urls.
Signed-off-by: Michael Wood <michael.g.wood at intel.com>
Signed-off-by: brian avery <brian.avery at intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
lib/toaster/orm/management/commands/lsupdates.py | 60 ++++++++----------------
1 file changed, 19 insertions(+), 41 deletions(-)
diff --git a/lib/toaster/orm/management/commands/lsupdates.py b/lib/toaster/orm/management/commands/lsupdates.py
index 8ff120e..688918e 100644
--- a/lib/toaster/orm/management/commands/lsupdates.py
+++ b/lib/toaster/orm/management/commands/lsupdates.py
@@ -154,41 +154,17 @@ class Command(NoArgsCommand):
total = len(layers_info)
for i, li in enumerate(layers_info):
- # Special case for the openembedded-core layer
- if li['name'] == oe_core_layer:
- try:
- # If we have an existing openembedded-core for example
- # from the toasterconf.json augment the info using the
- # layerindex rather than duplicate it
- oe_core_l = Layer.objects.get(name=oe_core_layer)
- # Take ownership of the layer as now coming from the
- # layerindex
- oe_core_l.summary = li['summary']
- oe_core_l.description = li['description']
- oe_core_l.vcs_web_url = li['vcs_web_url']
- oe_core_l.vcs_web_tree_base_url = \
- li['vcs_web_tree_base_url']
- oe_core_l.vcs_web_file_base_url = \
- li['vcs_web_file_base_url']
-
- oe_core_l.save()
- li_layer_id_to_toaster_layer_id[li['id']] = oe_core_l.pk
- self.mini_progress("layers", i, total)
- continue
-
- except Layer.DoesNotExist:
- pass
-
try:
- l, created = Layer.objects.get_or_create(name=li['name'],
- vcs_url=li['vcs_url'])
+ l, created = Layer.objects.get_or_create(name=li['name'])
l.up_date = li['updated']
- l.vcs_url = li['vcs_url']
- l.vcs_web_url = li['vcs_web_url']
- l.vcs_web_tree_base_url = li['vcs_web_tree_base_url']
- l.vcs_web_file_base_url = li['vcs_web_file_base_url']
l.summary = li['summary']
l.description = li['description']
+
+ if created:
+ l.vcs_url = li['vcs_url']
+ l.vcs_web_url = li['vcs_web_url']
+ l.vcs_web_tree_base_url = li['vcs_web_tree_base_url']
+ l.vcs_web_file_base_url = li['vcs_web_file_base_url']
l.save()
except Layer.MultipleObjectsReturned:
logger.info("Skipped %s as we found multiple layers and "
@@ -211,12 +187,14 @@ class Command(NoArgsCommand):
total = len(layerbranches_info)
for i, lbi in enumerate(layerbranches_info):
+ # release as defined by toaster map to layerindex branch
+ release = li_branch_id_to_toaster_release[lbi['branch']]
try:
lv, created = Layer_Version.objects.get_or_create(
- layer_source=LayerSource.TYPE_LAYERINDEX,
layer=Layer.objects.get(
- pk=li_layer_id_to_toaster_layer_id[lbi['layer']])
+ pk=li_layer_id_to_toaster_layer_id[lbi['layer']]),
+ release=release
)
except KeyError:
logger.warning(
@@ -224,11 +202,12 @@ class Command(NoArgsCommand):
lbi['layer'])
continue
- lv.release = li_branch_id_to_toaster_release[lbi['branch']]
- lv.up_date = lbi['updated']
- lv.commit = lbi['actual_branch']
- lv.dirpath = lbi['vcs_subdir']
- lv.save()
+ if created:
+ lv.release = li_branch_id_to_toaster_release[lbi['branch']]
+ lv.up_date = lbi['updated']
+ lv.commit = lbi['actual_branch']
+ lv.dirpath = lbi['vcs_subdir']
+ lv.save()
li_layer_branch_id_to_toaster_lv_id[lbi['id']] =\
lv.pk
@@ -255,9 +234,8 @@ class Command(NoArgsCommand):
layer_id = li_layer_id_to_toaster_layer_id[ldi['dependency']]
dependlist[lv].append(
- Layer_Version.objects.get(
- layer_source=LayerSource.TYPE_LAYERINDEX,
- layer__pk=layer_id))
+ Layer_Version.objects.get(layer__pk=layer_id,
+ release=lv.release))
except Layer_Version.DoesNotExist:
logger.warning("Cannot find layer version (ls:%s),"
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list