diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/views.py')
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 4960ba0e40..aabc3d0cd8 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py | |||
@@ -352,15 +352,17 @@ def builddashboard( request, build_id ): | |||
352 | return render( request, template, context ) | 352 | return render( request, template, context ) |
353 | 353 | ||
354 | 354 | ||
355 | def generateCoveredList( task ): | 355 | |
356 | revList = _find_task_revdep( task ); | 356 | def generateCoveredList2( revlist = [] ): |
357 | list = { }; | 357 | covered_list = [ x for x in revlist if x.outcome == Task.OUTCOME_COVERED ] |
358 | for t in revList: | 358 | while len(covered_list): |
359 | if ( t.outcome == Task.OUTCOME_COVERED ): | 359 | revlist = [ x for x in revlist if x.outcome != Task.OUTCOME_COVERED ] |
360 | list.update( generateCoveredList( t )); | 360 | |
361 | else: | 361 | newlist = _find_task_revdep_list(covered_list) |
362 | list[ t.task_name ] = t; | 362 | |
363 | return( list ); | 363 | revlist = list(set(revlist + newlist)) |
364 | covered_list = [ x for x in revlist if x.outcome == Task.OUTCOME_COVERED ] | ||
365 | return revlist | ||
364 | 366 | ||
365 | def task( request, build_id, task_id ): | 367 | def task( request, build_id, task_id ): |
366 | template = "task.html" | 368 | template = "task.html" |
@@ -376,9 +378,10 @@ def task( request, build_id, task_id ): | |||
376 | key=lambda t:'%s_%s %s'%( t.recipe.name, t.recipe.version, t.task_name )) | 378 | key=lambda t:'%s_%s %s'%( t.recipe.name, t.recipe.version, t.task_name )) |
377 | coveredBy = ''; | 379 | coveredBy = ''; |
378 | if ( task.outcome == Task.OUTCOME_COVERED ): | 380 | if ( task.outcome == Task.OUTCOME_COVERED ): |
379 | dict = generateCoveredList( task ) | 381 | # _list = generateCoveredList( task ) |
382 | _list = generateCoveredList2( _find_task_revdep( task ) ) | ||
380 | coveredBy = [ ] | 383 | coveredBy = [ ] |
381 | for name, t in dict.items( ): | 384 | for t in _list: |
382 | coveredBy.append( t ) | 385 | coveredBy.append( t ) |
383 | log_head = '' | 386 | log_head = '' |
384 | log_body = '' | 387 | log_body = '' |
@@ -737,18 +740,17 @@ def dirinfo(request, build_id, target_id, file_path=None): | |||
737 | return render(request, template, context) | 740 | return render(request, template, context) |
738 | 741 | ||
739 | def _find_task_dep(task): | 742 | def _find_task_dep(task): |
740 | tp = [] | 743 | return map(lambda x: x.depends_on, Task_Dependency.objects.filter(task=task).filter(depends_on__order__gt = 0).exclude(depends_on__outcome = Task.OUTCOME_NA).select_related("depends_on")) |
741 | for p in Task_Dependency.objects.filter(task=task): | ||
742 | if (p.depends_on.order > 0) and (p.depends_on.outcome != Task.OUTCOME_NA): | ||
743 | tp.append(p.depends_on); | ||
744 | return tp | ||
745 | 744 | ||
746 | 745 | ||
747 | def _find_task_revdep(task): | 746 | def _find_task_revdep(task): |
748 | tp = [] | 747 | tp = [] |
749 | for p in Task_Dependency.objects.filter(depends_on=task): | 748 | tp = map(lambda t: t.task, Task_Dependency.objects.filter(depends_on=task).filter(task__order__gt=0).exclude(task__outcome = Task.OUTCOME_NA).select_related("task", "task__recipe", "task__build")) |
750 | if (p.task.order > 0) and (p.task.outcome != Task.OUTCOME_NA): | 749 | return tp |
751 | tp.append(p.task); | 750 | |
751 | def _find_task_revdep_list(tasklist): | ||
752 | tp = [] | ||
753 | tp = map(lambda t: t.task, Task_Dependency.objects.filter(depends_on__in=tasklist).filter(task__order__gt=0).exclude(task__outcome = Task.OUTCOME_NA).select_related("task", "task__recipe", "task__build")) | ||
752 | return tp | 754 | return tp |
753 | 755 | ||
754 | def _find_task_provider(task): | 756 | def _find_task_provider(task): |