diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/toaster/toastergui/static/css/default.css | 2 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/task.html | 36 | ||||
-rw-r--r-- | bitbake/lib/toaster/toastergui/templatetags/projecttags.py | 6 |
3 files changed, 26 insertions, 18 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/css/default.css b/bitbake/lib/toaster/toastergui/static/css/default.css index 2b47aff6f9..7db156a16e 100644 --- a/bitbake/lib/toaster/toastergui/static/css/default.css +++ b/bitbake/lib/toaster/toastergui/static/css/default.css | |||
@@ -30,7 +30,7 @@ dd code, .alert code { white-space: pre-wrap; word-break: break-all; word-wrap: | |||
30 | .tooltip code { background-color: transparent; color: #FFFFFF; font-weight: normal; border: none; font-size: 1em; } | 30 | .tooltip code { background-color: transparent; color: #FFFFFF; font-weight: normal; border: none; font-size: 1em; } |
31 | 31 | ||
32 | /* Style for definition lists */ | 32 | /* Style for definition lists */ |
33 | dd ul { list-style-type: none; margin-left: 0px; } | 33 | dd ul { list-style-type: none; margin: 0px; } |
34 | dt, dd {line-height: 25px; } | 34 | dt, dd {line-height: 25px; } |
35 | dd li { line-height: 25px; } | 35 | dd li { line-height: 25px; } |
36 | dd p { line-height: 20px; } | 36 | dd p { line-height: 20px; } |
diff --git a/bitbake/lib/toaster/toastergui/templates/task.html b/bitbake/lib/toaster/toastergui/templates/task.html index 403bb03f68..af994fde1b 100644 --- a/bitbake/lib/toaster/toastergui/templates/task.html +++ b/bitbake/lib/toaster/toastergui/templates/task.html | |||
@@ -23,12 +23,14 @@ | |||
23 | {%if task.task_executed %} | 23 | {%if task.task_executed %} |
24 | {# executed tasks outcome #} | 24 | {# executed tasks outcome #} |
25 | <dl class="dl-horizontal"> | 25 | <dl class="dl-horizontal"> |
26 | {% if task.logfile %} | ||
26 | <dt> | 27 | <dt> |
27 | <i class="icon-question-sign get-help" title="" data-original-title="The location in disk of the task log file"></i> Log file | 28 | <i class="icon-question-sign get-help" title="The location in disk of the task log file"></i> Log file |
28 | </dt> | 29 | </dt> |
29 | <dd> | 30 | <dd> |
30 | <code>{{task.logfile}}</code> | 31 | <code>{{task.logfile}}</code> |
31 | </dd> | 32 | </dd> |
33 | {% endif %} | ||
32 | {# show stack trace for failed task #} | 34 | {# show stack trace for failed task #} |
33 | {% if task.outcome == task.OUTCOME_FAILED and log_head %} | 35 | {% if task.outcome == task.OUTCOME_FAILED and log_head %} |
34 | <h3>Python stack trace</h3> | 36 | <h3>Python stack trace</h3> |
@@ -47,7 +49,7 @@ | |||
47 | <a class="btn" href="javascript:reload_params({'show_matches' : 'true' })">Match to tasks in previous builds <i class="icon-question-sign get-help" style="margin-top:20px;" data-toggle="tooltip" title="This will show you a list of tasks from previous builds with the same inputs signature as this prebuilt task. Any of them could be the task that generated the output this prebuilt task is reusing"></i></a> | 49 | <a class="btn" href="javascript:reload_params({'show_matches' : 'true' })">Match to tasks in previous builds <i class="icon-question-sign get-help" style="margin-top:20px;" data-toggle="tooltip" title="This will show you a list of tasks from previous builds with the same inputs signature as this prebuilt task. Any of them could be the task that generated the output this prebuilt task is reusing"></i></a> |
48 | {% elif matching_tasks %} | 50 | {% elif matching_tasks %} |
49 | <h3 class="details">Prebuilt task could be based on | 51 | <h3 class="details">Prebuilt task could be based on |
50 | <i class="icon-question-sign get-help heading-help" title="" data-toggle="tooltip" data-original-title="This table shows a list of tasks from previous builds with the same inputs signature as the prebuilt task. Any of them could be the task that generated the output the prebuilt task is reusing"></i> | 52 | <i class="icon-question-sign get-help heading-help" title="This table shows a list of tasks from previous builds with the same inputs signature as the prebuilt task. Any of them could be the task that generated the output the prebuilt task is reusing"></i> |
51 | </h3> | 53 | </h3> |
52 | <table class="table table-bordered table-hover"> | 54 | <table class="table table-bordered table-hover"> |
53 | <thead> | 55 | <thead> |
@@ -85,7 +87,7 @@ | |||
85 | <a href="{%url "task" match.build.pk match.pk%}">{{match.get_executed_display}}</a> | 87 | <a href="{%url "task" match.build.pk match.pk%}">{{match.get_executed_display}}</a> |
86 | </td> | 88 | </td> |
87 | <td> | 89 | <td> |
88 | <a href="{%url "task" match.build.pk match.pk%}">{{match.get_outcome_display}}</a><i class="icon-question-sign get-help hover-help" title="" style="visibility: hidden;" data-original-title="{{match.outcome_help}}"></i> | 90 | <a href="{%url "task" match.build.pk match.pk%}">{{match.get_outcome_display}}</a><i class="icon-question-sign get-help hover-help" title="{{match.outcome_help}}"></i> |
89 | </td> | 91 | </td> |
90 | <td> | 92 | <td> |
91 | <a href="{%url "task" match.build.pk match.pk%}">{{match.build.completed_on|date:"d/m/y H:i"}}</a> | 93 | <a href="{%url "task" match.build.pk match.pk%}">{{match.build.completed_on|date:"d/m/y H:i"}}</a> |
@@ -103,7 +105,7 @@ | |||
103 | {% elif task.outcome == task.OUTCOME_COVERED %} | 105 | {% elif task.outcome == task.OUTCOME_COVERED %} |
104 | <dl class="dl-horizontal"> | 106 | <dl class="dl-horizontal"> |
105 | <dt> | 107 | <dt> |
106 | <i class="icon-question-sign get-help" title="" data-toggle="tooltip" data-original-title="The task providing the outcome of this task"></i>Task covered by | 108 | <i class="icon-question-sign get-help" title="The task providing the outcome of this task"></i> Task covered by |
107 | </dt> | 109 | </dt> |
108 | <dd> | 110 | <dd> |
109 | <ul> | 111 | <ul> |
@@ -114,7 +116,7 @@ | |||
114 | {%elif task.outcome == task.OUTCOME_CACHED%} | 116 | {%elif task.outcome == task.OUTCOME_CACHED%} |
115 | <dl class="dl-horizontal"> | 117 | <dl class="dl-horizontal"> |
116 | <dt> | 118 | <dt> |
117 | <i class="icon-question-sign get-help" title="" data-original-title="The location in disk of the task log file"></i> Log file | 119 | <i class="icon-question-sign get-help" title="The location in disk of the task log file"></i> Log file |
118 | </dt> | 120 | </dt> |
119 | <dd> | 121 | <dd> |
120 | <code>{% for t in task.get_related_setscene %} {{t.logfile}}<br/>{% endfor %} | 122 | <code>{% for t in task.get_related_setscene %} {{t.logfile}}<br/>{% endfor %} |
@@ -132,10 +134,10 @@ | |||
132 | <h2 {{task|task_color}}> | 134 | <h2 {{task|task_color}}> |
133 | {% if task.task_executed %} | 135 | {% if task.task_executed %} |
134 | Executed | 136 | Executed |
135 | <i class="icon-question-sign get-help heading-help" title="" data-original-title="Executed tasks are those that need to run in order to generate the task output"></i> | 137 | <i class="icon-question-sign get-help heading-help" title="Executed tasks are those that need to run in order to generate the task output"></i> |
136 | {% else %} | 138 | {% else %} |
137 | Not Executed | 139 | Not Executed |
138 | <i class="icon-question-sign get-help heading-help" title="" data-original-title="Not executed tasks don't need to run because their outcome is provided by another task"></i> | 140 | <i class="icon-question-sign get-help heading-help" title="Not executed tasks don't need to run because their outcome is provided by another task"></i> |
139 | {% endif %} | 141 | {% endif %} |
140 | </h2> | 142 | </h2> |
141 | <dl class="dl-horizontal"> | 143 | <dl class="dl-horizontal"> |
@@ -146,12 +148,12 @@ | |||
146 | <dd> | 148 | <dd> |
147 | {{task.sstate_checksum}} | 149 | {{task.sstate_checksum}} |
148 | </dd> | 150 | </dd> |
149 | </dl> | ||
150 | {% if task.sstate_result != task.SSTATE_NA %} | 151 | {% if task.sstate_result != task.SSTATE_NA %} |
152 | </dl> | ||
151 | <div class="alert alert-info">Attempting to restore output from sstate cache | 153 | <div class="alert alert-info">Attempting to restore output from sstate cache |
152 | <i class="icon-question-sign get-help get-help-blue" title="The build system is searching for the task output in your <code>sstate-cache</code> directory and mirrors. If it finds it, it will use it instead of building it from scratch by running the real task. This makes the build faster"></i> | 154 | <i class="icon-question-sign get-help get-help-blue" title="The build system is searching for the task output in your <code>sstate-cache</code> directory and mirrors. If it finds it, it will use it instead of building it from scratch by running the real task. This makes the build faster"></i> |
153 | </div> | 155 | </div> |
154 | <dl class="dl-horizontal"> | 156 | <dl class="dl-horizontal"> |
155 | <dt> | 157 | <dt> |
156 | <i class="icon-question-sign get-help" title="The name of the file searched for in your <code>sstate-cache</code> directory and mirrors"></i> | 158 | <i class="icon-question-sign get-help" title="The name of the file searched for in your <code>sstate-cache</code> directory and mirrors"></i> |
157 | File searched for | 159 | File searched for |
@@ -189,7 +191,7 @@ | |||
189 | </div> | 191 | </div> |
190 | {% elif task.sstate_result == task.SSTATE_RESTORED %} | 192 | {% elif task.sstate_result == task.SSTATE_RESTORED %} |
191 | <div class="alert alert-info"> | 193 | <div class="alert alert-info"> |
192 | Output successfully restored from sstate cache. | 194 | Output <strong>successfully restored</strong> from sstate cache. |
193 | </div> | 195 | </div> |
194 | {% endif %} | 196 | {% endif %} |
195 | <dl class="dl-horizontal"> | 197 | <dl class="dl-horizontal"> |
@@ -221,7 +223,7 @@ | |||
221 | {% for dep in deps %} | 223 | {% for dep in deps %} |
222 | <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li> | 224 | <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li> |
223 | {% empty %} | 225 | {% empty %} |
224 | <li><p class="alert-info">This task has no dependencies</p></li> | 226 | <li class="muted">This task has no dependencies</li> |
225 | {% endfor %} | 227 | {% endfor %} |
226 | </ul> | 228 | </ul> |
227 | </dd> | 229 | </dd> |
@@ -234,7 +236,7 @@ | |||
234 | {% for dep in rdeps %} | 236 | {% for dep in rdeps %} |
235 | <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li> | 237 | <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li> |
236 | {% empty %} | 238 | {% empty %} |
237 | <li><p class="alert-info">This task has no reverse dependencies</p></li> | 239 | <li class="muted">This task has no reverse dependencies</li> |
238 | {% endfor %} | 240 | {% endfor %} |
239 | </ul> | 241 | </ul> |
240 | </dl> | 242 | </dl> |
@@ -243,21 +245,27 @@ | |||
243 | {%if task.task_executed %} | 245 | {%if task.task_executed %} |
244 | <h2 class="details">Performance</h2> | 246 | <h2 class="details">Performance</h2> |
245 | <dl class="dl-horizontal"> | 247 | <dl class="dl-horizontal"> |
248 | {% if task.elapsed_time > 0.01 %} | ||
246 | <dt> | 249 | <dt> |
247 | <i class="icon-question-sign get-help" title="How long it took the task to finish, expressed in seconds"></i> | 250 | <i class="icon-question-sign get-help" title="How long it took the task to finish, expressed in seconds"></i> |
248 | Time (secs) | 251 | Time (secs) |
249 | </dt> | 252 | </dt> |
250 | <dd>{{task.elapsed_time|format_none_and_zero}}</dd> | 253 | <dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd> |
254 | {% endif %} | ||
255 | {% if task.cpu_usage > 0 %} | ||
251 | <dt> | 256 | <dt> |
252 | <i class="icon-question-sign get-help" title="Task CPU utilisation, expressed as a percentage"></i> | 257 | <i class="icon-question-sign get-help" title="Task CPU utilisation, expressed as a percentage"></i> |
253 | CPU usage | 258 | CPU usage |
254 | </dt> | 259 | </dt> |
255 | <dd>{{task.cpu_usage|format_none_and_zero}}</dd> | 260 | <dd>{{task.cpu_usage|format_none_and_zero|floatformat:2}}%</dd> |
261 | {% endif %} | ||
262 | {% if task.disk_io > 0 %} | ||
256 | <dt> | 263 | <dt> |
257 | <i class="icon-question-sign get-help" title="Number of miliseconds the task spent doing disk input and output"></i> | 264 | <i class="icon-question-sign get-help" title="Number of miliseconds the task spent doing disk input and output"></i> |
258 | Disk I/O (ms) | 265 | Disk I/O (ms) |
259 | </dt> | 266 | </dt> |
260 | <dd>{{task.disk_io|format_none_and_zero}}</dd> | 267 | <dd>{{task.disk_io|format_none_and_zero}}</dd> |
268 | {% endif %} | ||
261 | </dl> | 269 | </dl> |
262 | {%endif%} | 270 | {%endif%} |
263 | 271 | ||
diff --git a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py index 857680b350..2d339d623f 100644 --- a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py +++ b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py | |||
@@ -70,16 +70,16 @@ def sortcols(tablecols): | |||
70 | return sorted(tablecols, key = lambda t: t['name']) | 70 | return sorted(tablecols, key = lambda t: t['name']) |
71 | 71 | ||
72 | @register.filter | 72 | @register.filter |
73 | def task_color(task_object, show_green=False): | 73 | def task_color(task_object, show_colour=False): |
74 | """ Return css class depending on Task execution status and execution outcome. | 74 | """ Return css class depending on Task execution status and execution outcome. |
75 | By default, green is not returned for executed and successful tasks; | 75 | By default, green is not returned for executed and successful tasks; |
76 | show_green argument should be True to get green color. | 76 | show_green argument should be True to get green color. |
77 | """ | 77 | """ |
78 | if not task_object.task_executed: | 78 | if not task_object.task_executed: |
79 | return 'class=muted' | 79 | return 'class=muted' |
80 | elif task_object.outcome == task_object.OUTCOME_FAILED: | 80 | elif task_object.outcome == task_object.OUTCOME_FAILED and show_colour: |
81 | return 'class=error' | 81 | return 'class=error' |
82 | elif task_object.outcome == task_object.OUTCOME_SUCCESS and show_green: | 82 | elif task_object.outcome == task_object.OUTCOME_SUCCESS and show_colour: |
83 | return 'class=green' | 83 | return 'class=green' |
84 | else: | 84 | else: |
85 | return '' | 85 | return '' |