From 1913a1751d50c6e6011faea57999a4d342963de9 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Mon, 17 Feb 2014 17:33:27 +0000 Subject: [PATCH] bitbake: toasterui: save missed sstate tasks We save the missed sstate tasks as tasks that executed but have the sstate_result set to "SSTATE_MISSED", signaling that the attempt to find an sstate file failed. (Bitbake rev: 6f22e02614adcc642fe011e5e31ca4936d1cb19d) Signed-off-by: Alexandru DAMIAN Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/buildinfohelper.py | 21 +++++++++++++++++++++ bitbake/lib/bb/ui/toasterui.py | 2 ++ 2 files changed, 23 insertions(+) diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index 71b2ff508a..d1d92c8a5e 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py @@ -749,6 +749,27 @@ class BuildInfoHelper(object): self.orm_wrapper.get_update_task_object(task_information, True) # must exist + def store_missed_state_tasks(self, event): + for (fn, taskname, taskhash, sstatefile) in event.data: + + identifier = fn + taskname + "_setscene" + recipe_information = self._get_recipe_information_from_taskfile(fn) + recipe = self.orm_wrapper.get_update_recipe_object(recipe_information) + class MockEvent: pass + event = MockEvent() + event.taskname = taskname + event.taskhash = taskhash + task_information = self._get_task_information(event,recipe) + + task_information['start_time'] = datetime.datetime.now() + task_information['outcome'] = Task.OUTCOME_NA + task_information['sstate_checksum'] = taskhash + task_information['sstate_result'] = Task.SSTATE_MISS + task_information['path_to_sstate_obj'] = sstatefile + + self.orm_wrapper.get_update_task_object(task_information) + + def store_target_package_data(self, event): assert 'data' in vars(event) # for all image targets diff --git a/bitbake/lib/bb/ui/toasterui.py b/bitbake/lib/bb/ui/toasterui.py index b2c084cb8e..453eaf9485 100644 --- a/bitbake/lib/bb/ui/toasterui.py +++ b/bitbake/lib/bb/ui/toasterui.py @@ -241,6 +241,8 @@ def main(server, eventHandler, params ): buildinfohelper.store_tasks_stats(event) elif event.type == "ImagePkgList": buildinfohelper.store_target_package_data(event) + elif event.type == "MissedSstate": + buildinfohelper.store_missed_state_tasks(event) elif event.type == "ImageFileSize": buildinfohelper.update_target_image_file(event) elif event.type == "LicenseManifestPath":