summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/ui/buildinfohelper.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
index 54f6c4ebe8..160cb03743 100644
--- a/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/bitbake/lib/bb/ui/buildinfohelper.py
@@ -308,6 +308,7 @@ class BuildInfoHelper(object):
308 def __init__(self, server, has_build_history = False): 308 def __init__(self, server, has_build_history = False):
309 self._configure_django() 309 self._configure_django()
310 self.internal_state = {} 310 self.internal_state = {}
311 self.internal_state['taskdata'] = {}
311 self.task_order = 0 312 self.task_order = 0
312 self.server = server 313 self.server = server
313 self.orm_wrapper = ORMWrapper() 314 self.orm_wrapper = ORMWrapper()
@@ -444,7 +445,7 @@ class BuildInfoHelper(object):
444 self.orm_wrapper.update_build_object(self.internal_state['build'], errors, warnings, taskfailures) 445 self.orm_wrapper.update_build_object(self.internal_state['build'], errors, warnings, taskfailures)
445 446
446 def store_started_task(self, event): 447 def store_started_task(self, event):
447 identifier = event.taskfile + event.taskname 448 identifier = event.taskfile.split(":")[-1] + ":" + event.taskname
448 449
449 recipe_information = self._get_recipe_information_from_taskfile(event.taskfile) 450 recipe_information = self._get_recipe_information_from_taskfile(event.taskfile)
450 recipe = self.orm_wrapper.get_update_recipe_object(recipe_information) 451 recipe = self.orm_wrapper.get_update_recipe_object(recipe_information)
@@ -472,7 +473,7 @@ class BuildInfoHelper(object):
472 473
473 task_obj = self.orm_wrapper.get_update_task_object(task_information) 474 task_obj = self.orm_wrapper.get_update_task_object(task_information)
474 475
475 self.internal_state[identifier] = { 476 self.internal_state['taskdata'][identifier] = {
476 'start_time': datetime.datetime.now(), 477 'start_time': datetime.datetime.now(),
477 'outcome': task_information['outcome'], 478 'outcome': task_information['outcome'],
478 } 479 }
@@ -492,13 +493,15 @@ class BuildInfoHelper(object):
492 task_obj = self.orm_wrapper.get_update_task_object(task_information) 493 task_obj = self.orm_wrapper.get_update_task_object(task_information)
493 494
494 def update_and_store_task(self, event): 495 def update_and_store_task(self, event):
495 identifier = event.taskfile + event.taskname 496 identifier = event.taskfile.split(":")[-1] + ":" + event.taskname
497 assert identifier in self.internal_state['taskdata']
498
496 recipe_information = self._get_recipe_information_from_taskfile(event.taskfile) 499 recipe_information = self._get_recipe_information_from_taskfile(event.taskfile)
497 recipe = self.orm_wrapper.get_update_recipe_object(recipe_information) 500 recipe = self.orm_wrapper.get_update_recipe_object(recipe_information)
498 task_information = self._get_task_information(event,recipe) 501 task_information = self._get_task_information(event,recipe)
499 502
500 task_information['start_time'] = self.internal_state[identifier]['start_time'] 503 task_information['start_time'] = self.internal_state['taskdata'][identifier]['start_time']
501 task_information['outcome'] = self.internal_state[identifier]['outcome'] 504 task_information['outcome'] = self.internal_state['taskdata'][identifier]['outcome']
502 505
503 if 'logfile' in vars(event): 506 if 'logfile' in vars(event):
504 task_information['logfile'] = event.logfile 507 task_information['logfile'] = event.logfile
@@ -516,11 +519,11 @@ class BuildInfoHelper(object):
516 if task_information['outcome'] == Task.OUTCOME_NA: 519 if task_information['outcome'] == Task.OUTCOME_NA:
517 if isinstance(event, (bb.runqueue.runQueueTaskCompleted, bb.runqueue.sceneQueueTaskCompleted)): 520 if isinstance(event, (bb.runqueue.runQueueTaskCompleted, bb.runqueue.sceneQueueTaskCompleted)):
518 task_information['outcome'] = Task.OUTCOME_SUCCESS 521 task_information['outcome'] = Task.OUTCOME_SUCCESS
519 del self.internal_state[identifier] 522 del self.internal_state['taskdata'][identifier]
520 523
521 if isinstance(event, (bb.runqueue.runQueueTaskFailed, bb.runqueue.sceneQueueTaskFailed)): 524 if isinstance(event, (bb.runqueue.runQueueTaskFailed, bb.runqueue.sceneQueueTaskFailed)):
522 task_information['outcome'] = Task.OUTCOME_FAILED 525 task_information['outcome'] = Task.OUTCOME_FAILED
523 del self.internal_state[identifier] 526 del self.internal_state['taskdata'][identifier]
524 527
525 self.orm_wrapper.get_update_task_object(task_information) 528 self.orm_wrapper.get_update_task_object(task_information)
526 529