summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/toaster/orm/models.py2
-rwxr-xr-xbitbake/lib/toaster/toastergui/views.py40
2 files changed, 23 insertions, 19 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 9d4f4c94c1..15481e5a58 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -393,6 +393,8 @@ class Task(models.Model):
393 outcome_text = property(get_outcome_text) 393 outcome_text = property(get_outcome_text)
394 sstate_text = property(get_sstate_text) 394 sstate_text = property(get_sstate_text)
395 395
396 def __unicode__(self):
397 return "%d %s:%s" % (self.id, self.recipe.name, self.task_name)
396 class Meta: 398 class Meta:
397 ordering = ('order', 'recipe' ,) 399 ordering = ('order', 'recipe' ,)
398 unique_together = ('build', 'recipe', 'task_name', ) 400 unique_together = ('build', 'recipe', 'task_name', )
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
355def generateCoveredList( task ): 355
356 revList = _find_task_revdep( task ); 356def 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
365def task( request, build_id, task_id ): 367def 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
739def _find_task_dep(task): 742def _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
747def _find_task_revdep(task): 746def _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
751def _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
754def _find_task_provider(task): 756def _find_task_provider(task):