diff options
| -rw-r--r-- | bitbake/lib/bb/ui/buildinfohelper.py | 17 |
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 | ||
