On 13 October 2015 at 23:11, Michael Wood <[email protected]> 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 <[email protected]> > --- > 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 > [email protected] > https://lists.yoctoproject.org/listinfo/toaster > -- Elliot Smith Software Engineer Intel Open Source Technology Centre
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
