[Toaster] [v2 PATCH] toaster: buildinfohelper Add additional metadata to the built layer

Barros Pena, Belen belen.barros.pena at intel.com
Mon Mar 21 07:58:05 PDT 2016



On 17/03/2016 18:27, "toaster-bounces at yoctoproject.org on behalf of
Michael Wood" <toaster-bounces at yoctoproject.org on behalf of
michael.g.wood at intel.com> wrote:

>Add additional metadata to the layer created for build history to be
>able to identify the layer and recipe later on. Specifically this is the
>branch and release to which the recipe and layer are associated with
>enabling differentiation of two recipes which are local release and
>master and 'master' release.
>
>[YOCTO #8528]
>[YOCTO #8545]

This totally works:

* Images now come up in the image recipes page of local projects after you
build them
* The build information includes the layer branch

But it prompts the question of why we are seeing different branches for
the core layers: meta-poky and meta-yocto-bsp show master, but my
openembedded-core shows a different brach (a development one I was using
previously). I know this has nothing to do with this patch, but just
wondering why this is happening, and whether is a toaster thing or a
bitbake thing.

Thanks!

Belén
 
>
>Signed-off-by: Michael Wood <michael.g.wood at intel.com>
>---
> bitbake/lib/bb/ui/buildinfohelper.py | 34
>+++++++++++++++++++++++-----------
> 1 file changed, 23 insertions(+), 11 deletions(-)
>
>diff --git a/bitbake/lib/bb/ui/buildinfohelper.py
>b/bitbake/lib/bb/ui/buildinfohelper.py
>index 28c7353..80ac800 100644
>--- a/bitbake/lib/bb/ui/buildinfohelper.py
>+++ b/bitbake/lib/bb/ui/buildinfohelper.py
>@@ -355,12 +355,17 @@ class ORMWrapper(object):
> 
>             # create a new copy of this layer version as a snapshot for
>             # historical purposes
>-            layer_copy, c =
>Layer_Version.objects.get_or_create(build=build_obj,
>-                            layer=layer_obj.layer,
>-                            commit=layer_version_information['commit'],
>-                            local_path =
>layer_version_information['local_path'],
>-                            )
>-            logger.info("created new historical layer version %d",
>layer_copy.pk)
>+            layer_copy, c = Layer_Version.objects.get_or_create(
>+                build=build_obj,
>+                layer=layer_obj.layer,
>+                up_branch=layer_obj.up_branch,
>+                branch=layer_version_information['branch'],
>+                commit=layer_version_information['commit'],
>+                local_path=layer_version_information['local_path'],
>+            )
>+
>+            logger.info("created new historical layer version %d",
>+                        layer_copy.pk)
> 
>             self.layer_version_built.append(layer_copy)
> 
>@@ -581,11 +586,15 @@ class ORMWrapper(object):
>                 
>packagedict[p]['object'].package_dependencies_target.all().delete()
>                 
>packagedict[p]['object'].package_dependencies_source.all().delete()
>                 try:
>-                    recipe = self._cached_get(Recipe,
>-                                              name=built_recipe.name,
>-                                              layer_version__build=None,
>-                 
>file_path=built_recipe.file_path,
>-                 
>version=built_recipe.version)
>+                    recipe = self._cached_get(
>+                        Recipe,
>+                        name=built_recipe.name,
>+                        layer_version__build=None,
>+                        layer_version__up_branch=
>+                        built_recipe.layer_version.up_branch,
>+                        file_path=built_recipe.file_path,
>+                        version=built_recipe.version
>+                    )
>                 except (Recipe.DoesNotExist,
>                         Recipe.MultipleObjectsReturned) as e:
>                     logger.info("We did not find one recipe for the"
>@@ -1293,6 +1302,9 @@ class BuildInfoHelper(object):
>                 for cls in event._depgraph['pn'][pn]['inherits']:
>                     if cls.endswith('/image.bbclass'):
>                         recipe.is_image = True
>+                        recipe_info['is_image'] = True
>+                        # Save the is_image state to the relevant recipe
>objects
>+                 
>self.orm_wrapper.get_update_recipe_object(recipe_info)
>                         break
>             if recipe.is_image:
>                 for t in self.internal_state['targets']:
>-- 
>2.1.4
>
>-- 
>_______________________________________________
>toaster mailing list
>toaster at yoctoproject.org
>https://lists.yoctoproject.org/listinfo/toaster



More information about the toaster mailing list