aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/bb/build.py2
-rw-r--r--lib/bb/ui/buildinfohelper.py11
2 files changed, 9 insertions, 4 deletions
diff --git a/lib/bb/build.py b/lib/bb/build.py
index 52e41493c..5cb4c06a8 100644
--- a/lib/bb/build.py
+++ b/lib/bb/build.py
@@ -30,6 +30,7 @@ import sys
import logging
import shlex
import glob
+import time
import bb
import bb.msg
import bb.process
@@ -75,6 +76,7 @@ class TaskBase(event.Event):
self.taskfile = d.getVar("FILE", True)
self.taskname = self._task
self.logfile = logfile
+ self.time = time.time()
event.Event.__init__(self)
self._message = "recipe %s: task %s: %s" % (d.getVar("PF", True), t, self.getDisplayName())
diff --git a/lib/bb/ui/buildinfohelper.py b/lib/bb/ui/buildinfohelper.py
index 15bc069b8..2084aab96 100644
--- a/lib/bb/ui/buildinfohelper.py
+++ b/lib/bb/ui/buildinfohelper.py
@@ -133,10 +133,10 @@ class ORMWrapper(object):
elif outcome_task_setscene == Task.OUTCOME_FAILED:
task_object.sstate_result = Task.SSTATE_FAILED
- # mark down duration if we have a start time
- if 'start_time' in task_information.keys():
- duration = datetime.datetime.now() - task_information['start_time']
- task_object.elapsed_time = duration.total_seconds()
+ # mark down duration if we have a start time and a current time
+ if 'start_time' in task_information.keys() and 'time' in vars(event):
+ duration = event.time - task_information['start_time']
+ task_object.elapsed_time = duration
task_object.save()
return task_object
@@ -717,6 +717,9 @@ class BuildInfoHelper(object):
recipe = self.orm_wrapper.get_update_recipe_object(recipe_information, True)
task_information = self._get_task_information(event,recipe)
+ if 'time' in vars(event) and isinstance(event, bb.build.TaskStarted):
+ self.internal_state['taskdata'][identifier]['start_time'] = event.time
+
task_information['start_time'] = self.internal_state['taskdata'][identifier]['start_time']
task_information['outcome'] = self.internal_state['taskdata'][identifier]['outcome']