[Toaster] [PATCH] toaster: buildinfohelper Detect command line builds
Smith, Elliot
elliot.smith at intel.com
Wed Oct 14 00:17:09 PDT 2015
On 13 October 2015 at 23:11, Michael Wood <michael.g.wood at intel.com> wrote:
> When we're building using toaster as just a listener to bitbake
> (analysis mode) we need to handle the case where the toaster configuration
> data
> isn't present so we don't need to try and update the existing information.
>
As this is in bitbake/lib/bb/ui, do we need a different subject line for
the commit, instead of "toaster"?
Elliot
>
> Signed-off-by: Michael Wood <michael.g.wood at intel.com>
> ---
> bitbake/lib/bb/ui/buildinfohelper.py | 34
> ++++++++++++++++++++++------------
> 1 file changed, 22 insertions(+), 12 deletions(-)
>
> diff --git a/bitbake/lib/bb/ui/buildinfohelper.py
> b/bitbake/lib/bb/ui/buildinfohelper.py
> index 67c239e..701efa2 100644
> --- a/bitbake/lib/bb/ui/buildinfohelper.py
> +++ b/bitbake/lib/bb/ui/buildinfohelper.py
> @@ -297,9 +297,13 @@ class ORMWrapper(object):
> break
>
>
> -
> - if created and must_exist:
> - raise NotExisting("Recipe object created when expected to
> exist", recipe_information)
> + # If we're in analysis mode then we are wholly responsible for
> the data
> + # and therefore we return the 'real' recipe rather than the build
> + # history copy of the recipe.
> + if recipe_information['layer_version'].build is not None and \
> + recipe_information['layer_version'].build.project == \
> + Project.objects.get_default_project():
> + return recipe
>
> return built_recipe
>
> @@ -332,14 +336,20 @@ class ORMWrapper(object):
> assert 'priority' in layer_version_information
> assert 'local_path' in layer_version_information
>
> + # If we're doing a command line build then associate this new
> layer with the
> + # project to avoid it 'contaminating' toaster data
> + project = None
> + if build_obj.project == Project.objects.get_default_project():
> + project = build_obj.project
> +
> layer_version_object, _ = Layer_Version.objects.get_or_create(
> - build = build_obj,
> - layer = layer_obj,
> - branch =
> layer_version_information['branch'],
> - commit =
> layer_version_information['commit'],
> - priority =
> layer_version_information['priority'],
> - local_path =
> layer_version_information['local_path'],
> - )
> + build = build_obj,
> + layer = layer_obj,
> + branch =
> layer_version_information['branch'],
> + commit =
> layer_version_information['commit'],
> + priority =
> layer_version_information['priority'],
> + local_path =
> layer_version_information['local_path'],
> + project=project)
>
> self.layer_version_objects.append(layer_version_object)
>
> @@ -844,7 +854,7 @@ class BuildInfoHelper(object):
> logger.warn("Could not match layer version for recipe path %s :
> %s", path, self.orm_wrapper.layer_version_objects)
>
> #mockup the new layer
> - unknown_layer, _ =
> Layer.objects.get_or_create(name="__FIXME__unidentified_layer",
> layer_index_url="")
> + unknown_layer, _ = Layer.objects.get_or_create(name="Unidentified
> layer", layer_index_url="")
> unknown_layer_version_obj, _ =
> Layer_Version.objects.get_or_create(layer = unknown_layer, build =
> self.internal_state['build'])
>
> # append it so we don't run into this error again and again
> @@ -1072,7 +1082,7 @@ class BuildInfoHelper(object):
> task_information['disk_io'] = taskstats['disk_io']
> if 'elapsed_time' in taskstats:
> task_information['elapsed_time'] =
> taskstats['elapsed_time']
> - self.orm_wrapper.get_update_task_object(task_information,
> True) # must exist
> + self.orm_wrapper.get_update_task_object(task_information)
>
> def update_and_store_task(self, event):
> assert 'taskfile' in vars(event)
> --
> 2.1.4
>
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
>
--
Elliot Smith
Software Engineer
Intel Open Source Technology Centre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/toaster/attachments/20151014/2b86a91d/attachment-0001.html>
More information about the toaster
mailing list