Patchwork [bitbake-devel,16/18] toasterui: save missed sstate tasks

login
register
mail settings
Submitter Alexandru DAMIAN
Date March 24, 2014, 6:37 p.m.
Message ID <6f22e02614adcc642fe011e5e31ca4936d1cb19d.1395686148.git.alexandru.damian@intel.com>
Download mbox | patch
Permalink /patch/69109/
State New
Headers show

Comments

Alexandru DAMIAN - March 24, 2014, 6:37 p.m.
From: Alexandru DAMIAN <alexandru.damian@intel.com>

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.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
---
 lib/bb/ui/buildinfohelper.py | 21 +++++++++++++++++++++
 lib/bb/ui/toasterui.py       |  2 ++
 2 files changed, 23 insertions(+)

Patch

diff --git a/lib/bb/ui/buildinfohelper.py b/lib/bb/ui/buildinfohelper.py
index 71b2ff5..d1d92c8 100644
--- a/lib/bb/ui/buildinfohelper.py
+++ b/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/lib/bb/ui/toasterui.py b/lib/bb/ui/toasterui.py
index b2c084c..453eaf9 100644
--- a/lib/bb/ui/toasterui.py
+++ b/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":