bitbake: toaster: buildinfohelper Add additional metadata to the built layer

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]

(Bitbake rev: 3deebd887bddbbd02fd9829a180aab494b1af7c4)

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Michael Wood 2016-04-01 12:53:55 +01:00 committed by Richard Purdie
parent 072a0b3e87
commit c9ad1e6703
1 changed files with 23 additions and 11 deletions

View File

@ -358,12 +358,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)
@ -584,11 +589,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"
@ -1297,6 +1306,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']: