summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/templates/task.html
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates/task.html')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/task.html159
1 files changed, 112 insertions, 47 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/task.html b/bitbake/lib/toaster/toastergui/templates/task.html
index 77391b4e35..86789bd0b1 100644
--- a/bitbake/lib/toaster/toastergui/templates/task.html
+++ b/bitbake/lib/toaster/toastergui/templates/task.html
@@ -13,19 +13,20 @@
13 13
14<div class="row"> 14<div class="row">
15 <div class="col-md-12"> 15 <div class="col-md-12">
16 <div class="page-header"> 16 <div class="page-header build-data">
17 <h1><a href="{%url 'recipe' build.pk task.recipe.pk %}">{{task.recipe.name}}_{{task.recipe.version}}</a> {{task.task_name}}</h1> 17 <h1><a href="{%url 'recipe' build.pk task.recipe.pk %}">{{task.recipe.name}}_{{task.recipe.version}}</a> {{task.task_name}}</h1>
18 </div> 18 </div>
19 19
20{# Outcome section #} 20{# Outcome section #}
21<h2 {{ task|task_color:True }}> 21<h2 {{ task|task_color:True }}>
22 {{task.get_outcome_display}} 22 {{task.get_outcome_display}}
23 <i class="icon-question-sign get-help heading-help" title="{{task.get_outcome_help}}"></i> 23 <span class="glyphicon glyphicon-question-sign get-help" title="{{task.get_outcome_help}}"></i>
24</h2> 24</h2>
25{%if task.task_executed %} 25{%if task.task_executed %}
26 {# executed tasks outcome #} 26 {# executed tasks outcome #}
27 {% if task.logfile %} 27 {% if task.logfile %}
28 <a class="btn btn-lg" href="{% url 'build_artifact' build.id "tasklogfile" task.pk %}" style="margin:15px;">Download task log</a> 28 <a class="btn btn-default btn-lg" href="{% url 'build_artifact' build.id
29 "tasklogfile" task.pk %}">Download task log</a>
29 {% endif %} 30 {% endif %}
30 {# show stack trace for failed task #} 31 {# show stack trace for failed task #}
31 {% if task.outcome == task.OUTCOME_FAILED and log_head %} 32 {% if task.outcome == task.OUTCOME_FAILED and log_head %}
@@ -41,31 +42,55 @@
41{# not executed tasks outcome #} 42{# not executed tasks outcome #}
42 {% if task.outcome == task.OUTCOME_PREBUILT %} 43 {% if task.outcome == task.OUTCOME_PREBUILT %}
43 {% if not showing_matches %} 44 {% if not showing_matches %}
44 <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;" title="This shows you a list of tasks from previous builds with the same signature generated from the same inputs as used in the prebuilt task. Any of them could be the task that generated the output this prebuilt task is reusing"></i></a> 45 <a class="btn btn-default"
46 href="javascript:reload_params({'show_matches' : 'true'
47 })">Match to tasks in previous builds <span class="glyphicon
48glyphicon-question-sign get-help" title="This shows you a list of tasks from
49previous builds with the same signature generated from the same inputs as used
50in the prebuilt task. Any of them could be the task that generated the output
51this prebuilt task is reusing"></span></a>
45 {% elif matching_tasks %} 52 {% elif matching_tasks %}
46 <h3 class="details">Prebuilt task could be based on 53 <h3 class="details">Prebuilt task could be based on
47 <i class="icon-question-sign get-help heading-help" title="This table shows a list of tasks from previous builds with the same signature generated from the same inputs as used in the prebuilt task. Any of them could be the task that generated the output this prebuilt task is reusing"></i> 54 <span class="glyphicon glyphicon-question-sign get-help" title="This
55 table shows a list of tasks from previous builds with the
56 same signature generated from the same inputs as used in the
57 prebuilt task. Any of them could be the task that generated the
58 output this prebuilt task is reusing"></span>
48 </h3> 59 </h3>
60 <div class="table-responsive">
49 <table class="table table-bordered table-hover"> 61 <table class="table table-bordered table-hover">
50 <thead> 62 <thead>
51 <th> 63 <th>
52 <i class="icon-question-sign get-help" title="The name of the recipe to which each task applies"></i> 64 <span class="glyphicon glyphicon-question-sign
65 get-help" title="The name of the recipe to which
66 each task applies"></span>
53 Recipe 67 Recipe
54 </th> 68 </th>
55 <th> 69 <th>
56 <i class="icon-question-sign get-help" title="The name of the task"></i> 70 <span class="glyphicon glyphicon-question-sign get-help" title="The name
71 of the task"></span>
57 Task 72 Task
58 </th> 73 </th>
59 <th> 74 <th>
60 <i class="icon-question-sign get-help" title="This value tells you if a task had to run (executed) in order to generate the task output, or if the output was provided by another task and therefore the task didn't need to run (not executed)"></i> 75 <span class="glyphicon glyphicon-question-sign get-help" title="This
76 value tells you if a task had to run (executed) in
77 order to generate the task output, or if the output was
78 provided by another task and therefore the task didn't need
79 to run (not executed)"></span>
61 Executed 80 Executed
62 </th> 81 </th>
63 <th> 82 <th>
64 <i class="icon-question-sign get-help" title="This column tells you if 'executed' tasks succeeded or failed. The column also tells you why 'not executed' tasks did not need to run"></i> 83 <span class="glyphicon glyphicon-question-sign
84 get-help" title="This column tells you if
85 'executed' tasks succeeded or failed. The column also
86 tells you why 'not executed' tasks did not need to
87 run"></span>
65 Outcome 88 Outcome
66 </th> 89 </th>
67 <th> 90 <th>
68 <i class="icon-question-sign get-help" title="The date and time the build finished"></i> 91 <span class="glyphicon glyphicon-question-sign
92 get-help" title="The date and time the build
93 finished"></span>
69 Build completed on 94 Build completed on
70 </th> 95 </th>
71 </thead> 96 </thead>
@@ -73,27 +98,34 @@
73 {% for match in matching_tasks %} 98 {% for match in matching_tasks %}
74 <tr {{ match|task_color }}> 99 <tr {{ match|task_color }}>
75 <td> 100 <td>
76 <a href="{%url "task" match.build.pk match.pk%}">{{match.recipe.name}}</a> 101 {{match.recipe.name}}
77 </td> 102 </td>
78 <td> 103 <td>
79 <a href="{%url "task" match.build.pk match.pk%}">{{match.task_name}}</a> 104 <a href="{%url "task" match.build.pk match.pk%}">{{match.task_name}}</a>
80 {% if task.get_description %} 105 {% if task.get_description %}
81 <i class="icon-question-sign get-help hover-help" title="{{task.get_description}}"></i> 106 <span class="glyphicon
107 glyphicon-question-sign get-help
108 hover-help"
109 title="{{task.get_description}}"></span>
82 {% endif %} 110 {% endif %}
83 </td> 111 </td>
84 <td> 112 <td>
85 <a href="{%url "task" match.build.pk match.pk%}">{{match.get_executed_display}}</a> 113 {{match.get_executed_display}}
86 </td> 114 </td>
87 <td> 115 <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="{{match.get_outcome_help}}"></i> 116 {{match.get_outcome_display}}
117 <span class="glyphicon glyphicon-question-sign
118 get-help hover-help"
119 title="{{match.get_outcome_help}}"></span>
89 </td> 120 </td>
90 <td> 121 <td>
91 <a href="{%url "task" match.build.pk match.pk%}">{{match.build.completed_on|date:"d/m/y H:i"}}</a> 122 {{match.build.completed_on|date:"d/m/y H:i"}}
92 </td> 123 </td>
93 </tr> 124 </tr>
94 {% endfor %} 125 {% endfor %}
95 </tbody> 126 </tbody>
96 </table> 127 </table>
128 </div>
97 {% else %} 129 {% else %}
98 <p class="alert"> 130 <p class="alert">
99 <strong> We have found no tasks matching this prebuilt task</strong><br/> 131 <strong> We have found no tasks matching this prebuilt task</strong><br/>
@@ -103,10 +135,11 @@
103 {% elif task.outcome == task.OUTCOME_COVERED %} 135 {% elif task.outcome == task.OUTCOME_COVERED %}
104 <dl class="dl-horizontal"> 136 <dl class="dl-horizontal">
105 <dt> 137 <dt>
106 <i class="icon-question-sign get-help" title="The task(s) providing the outcome of this task"></i> Task covered by 138 <span class="glyphicon glyphicon-question-sign get-help" title="The task(s)
139 providing the outcome of this task"></span> Task covered by
107 </dt> 140 </dt>
108 <dd> 141 <dd>
109 <ul> 142 <ul class="list-unstyled">
110 {% for t in covered_by %} 143 {% for t in covered_by %}
111 <li> 144 <li>
112 <a href="{%url 'task' t.build.pk t.pk%}" 145 <a href="{%url 'task' t.build.pk t.pk%}"
@@ -123,7 +156,8 @@
123 {%elif task.outcome == task.OUTCOME_CACHED%} 156 {%elif task.outcome == task.OUTCOME_CACHED%}
124 {% for t in task.get_related_setscene %} 157 {% for t in task.get_related_setscene %}
125 {% if forloop.last %} 158 {% if forloop.last %}
126 <a class="btn btn-lg" href="{% url 'build_artifact' build.id "tasklogfile" t.pk %}" style="margin:15px;">Download task log</a> 159 <a class="btn btn-default btn-lg" href="{% url
160 'build_artifact' build.id "tasklogfile" t.pk %}">Download task log</a>
127 {% endif %} 161 {% endif %}
128 {% endfor %} 162 {% endfor %}
129 163
@@ -138,17 +172,25 @@
138 {% if task.task_executed %} 172 {% if task.task_executed %}
139 <h2> 173 <h2>
140 Executed 174 Executed
141 <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> 175 <span class="glyphicon glyphicon-question-sign get-help"
176 title="'Executed' tasks are those that need to run in order to
177 generate the task output"></span>
142 {% else %} 178 {% else %}
143 <h2 class="muted"> 179 <h2>
144 Not Executed 180 Not Executed
145 <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> 181 <span class="glyphicon glyphicon-question-sign get-help" title="'Not
182 executed' tasks don't need to run because their outcome is provided
183 by another task"></span>
146 {% endif %} 184 {% endif %}
147 </h2> 185 </h2>
148 186
149<dl class="dl-horizontal"> 187<dl class="dl-horizontal">
150 <dt> 188 <dt>
151 <i class="icon-question-sign get-help" title="To make builds more efficient, the build system detects changes in the 'inputs' to a given task by creating a 'task signature'. If the signature changes, the build system assumes the inputs have changed and the task needs to be rerun"></i> 189 <span class="glyphicon glyphicon-question-sign get-help" title="To make builds more
190 efficient, the build system detects changes in the 'inputs' to a
191 given task by creating a 'task signature'. If the signature changes,
192 the build system assumes the inputs have changed and the task needs to be
193rerun"></span>
152 Task inputs signature 194 Task inputs signature
153 </dt> 195 </dt>
154 <dd> 196 <dd>
@@ -157,19 +199,29 @@
157 {% if task.sstate_result != task.SSTATE_NA %} 199 {% if task.sstate_result != task.SSTATE_NA %}
158 </dl> 200 </dl>
159 <div class="alert alert-info">Attempting to restore output from sstate cache 201 <div class="alert alert-info">Attempting to restore output from sstate cache
160 <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 the build system finds the task output, it will reuse it instead of building it from scratch by running the real task. Reusing the task output makes the build faster"></i> 202 <span class="glyphicon glyphicon-question-sign get-help
203 get-help-blue" title="The build system is searching for the
204 task output in your <code>sstate-cache</code> directory and
205 mirrors. If the build system finds the task output, it will reuse it
206 instead of building it from scratch by running the real task. Reusing the
207 task output makes the build faster"></span>
161 </div> 208 </div>
162 <dl class="dl-horizontal"> 209 <dl class="dl-horizontal">
163 <dt> 210 <dt>
164 <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> 211 <span class="glyphicon glyphicon-question-sign get-help" title="The name of the
212 file searched for in your <code>sstate-cache</code>
213 directory and mirrors"></span>
165 File searched for 214 File searched for
166 </dt> 215 </dt>
167 <dd><code>{{task.path_to_sstate_obj}}</code></dd> 216 <dd><code>{{task.path_to_sstate_obj}}</code></dd>
168 <dt> 217 <dt>
169 <i class="icon-question-sign get-help" title="The locations searched for the above file (i.e. your <code>sstate-cache</code> directory and any mirrors you have set up)"></i> 218 <span class="glyphicon glyphicon-question-sign get-help" title="The locations
219 searched for the above file (i.e. your
220 <code>sstate-cache</code> directory and any mirrors you have
221 set up)"></span>
170 URI(s) searched 222 URI(s) searched
171 </dt> 223 </dt>
172 <dd><ul>{% for uri in uri_list %}<li><code>{{uri}}</code></li>{% endfor %}</ul></dd> 224 <dd><ul class="list-unstyled">{% for uri in uri_list %}<li><code>{{uri}}</code></li>{% endfor %}</ul></dd>
173 </dl> 225 </dl>
174 {% endif %} 226 {% endif %}
175 {% if task.sstate_result == task.SSTATE_MISS %} 227 {% if task.sstate_result == task.SSTATE_MISS %}
@@ -177,7 +229,7 @@
177 <strong>File not in sstate cache.</strong> Running the real task instead. 229 <strong>File not in sstate cache.</strong> Running the real task instead.
178 </div> 230 </div>
179 {% elif task.sstate_result == task.SSTATE_FAILED%} 231 {% elif task.sstate_result == task.SSTATE_FAILED%}
180 <div class="alert"> 232 <div class="alert alert-warning">
181 <strong>Failed</strong> to restore output from sstate cache. The file was found but could not be unpacked. 233 <strong>Failed</strong> to restore output from sstate cache. The file was found but could not be unpacked.
182 </div> 234 </div>
183 <dl class="dl-horizontal"> 235 <dl class="dl-horizontal">
@@ -193,13 +245,16 @@
193 {% endif %} 245 {% endif %}
194 <dl class="dl-horizontal"> 246 <dl class="dl-horizontal">
195 <dt> 247 <dt>
196 <i class="icon-question-sign get-help" title="The running sequence of each task in the build"></i> 248 <span class="glyphicon glyphicon-question-sign get-help" title="The
249 running sequence of each task in the build"></span>
197 Task order 250 Task order
198 </dt> 251 </dt>
199 <dd><a href="{%url "tasks" build.pk %}?page={{task_in_tasks_table_pg}}&limit=25#task-{{task.order}}">{{task.order}}</a></dd> 252 <dd><a href="{%url "tasks" build.pk %}?page={{task_in_tasks_table_pg}}&limit=25#task-{{task.order}}">{{task.order}}</a></dd>
200 {% if task.task_executed %} 253 {% if task.task_executed %}
201 <dt> 254 <dt>
202 <i class="icon-question-sign get-help" title="Indicates if this task executes a Python or Shell function(s)"></i> 255 <span class="glyphicon glyphicon-question-sign get-help"
256 title="Indicates if this task executes a Python or Shell
257 function(s)"></span>
203 Task script type 258 Task script type
204 </dt> 259 </dt>
205 <dd>{{task.get_script_type_display}}</dd> 260 <dd>{{task.get_script_type_display}}</dd>
@@ -212,29 +267,31 @@
212 <dd><code>{{task.source_url}}</code></dd> 267 <dd><code>{{task.source_url}}</code></dd>
213--> 268-->
214 <dt> 269 <dt>
215 <i class="icon-question-sign get-help" title="Task dependency chain (i.e. other tasks)"></i> 270 <span class="glyphicon glyphicon-question-sign get-help" title="Task dependency chain
271 (i.e. other tasks)"></span>
216 Dependencies 272 Dependencies
217 </dt> 273 </dt>
218 <dd> 274 <dd>
219 <ul> 275 <ul class="list-unstyled">
220 {% for dep in deps %} 276 {% for dep in deps %}
221 <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> 277 <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>
222 {% empty %} 278 {% empty %}
223 <li class="muted">This task has no dependencies</li> 279 <li class="text-muted" style="margin-bottom: -10px;">This task has no dependencies</li>
224 {% endfor %} 280 {% endfor %}
225 </ul> 281 </ul>
226 </dd> 282 </dd>
227 <dt> 283 <dt>
228 <i class="icon-question-sign get-help" title="Tasks that depend on this task"></i> 284 <span class="glyphicon glyphicon-question-sign get-help" title="Tasks that depend on this
285 task"></span>
229 Reverse dependencies 286 Reverse dependencies
230 </dt> 287 </dt>
231 <dd> 288 <dd>
232 <ul> 289 <ul class="list-unstyled">
233 {% for dep in rdeps %} 290 {% for dep in rdeps %}
234 <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> 291 <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>
235 {% empty %} 292 {% empty %}
236 <li class="muted">This task has no reverse dependencies</li> 293 <li class="text-muted">This task has no reverse dependencies</li>
237 {% endfor %} 294 {% endfor %}
238 </ul> 295 </ul>
239</dl> 296</dl>
240 297
@@ -245,28 +302,36 @@
245 <dl class="dl-horizontal"> 302 <dl class="dl-horizontal">
246 {% if task.elapsed_time %} 303 {% if task.elapsed_time %}
247 <dt> 304 <dt>
248 <i class="icon-question-sign get-help" title="How long it took the task to finish in seconds"></i> 305 <span class="glyphicon glyphicon-question-sign get-help" title="How
306 long it took the task to finish in seconds"></span>
249 Time (secs) 307 Time (secs)
250 </dt> 308 </dt>
251 <dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd> 309 <dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd>
252 {% endif %} 310 {% endif %}
253 {% if task.cpu_time_user > 0 %} 311 {% if task.cpu_time_user > 0 %}
254 <dt> 312 <dt>
255 <i class="icon-question-sign get-help" title="Total amount of time spent executing in user mode, in seconds. Note that this time can be greater than the task time due to parallel execution."></i> 313 <span class="glyphicon glyphicon-question-sign get-help" title="Total amount of time
314 spent executing in user mode, in seconds. Note that this time
315 can be greater than the task time due to parallel
316 execution."></span>
256 User CPU time (secs) 317 User CPU time (secs)
257 </dt> 318 </dt>
258 <dd>{{task.cpu_time_user|format_none_and_zero|floatformat:2}}</dd> 319 <dd>{{task.cpu_time_user|format_none_and_zero|floatformat:2}}</dd>
259 {% endif %} 320 {% endif %}
260 {% if task.cpu_time_system > 0 %} 321 {% if task.cpu_time_system > 0 %}
261 <dt> 322 <dt>
262 <i class="icon-question-sign get-help" title="Total amount of time spent executing in kernel mode, in seconds. Note that this time can be greater than the task time due to parallel execution."></i> 323 <span class="glyphicon glyphicon-question-sign get-help" title="Total amount of time
324 spent executing in kernel mode, in seconds. Note that this time
325 can be greater than the task time due to parallel
326 execution."></span>
263 System CPU time (secs) 327 System CPU time (secs)
264 </dt> 328 </dt>
265 <dd>{{task.cpu_time_system|format_none_and_zero|floatformat:2}}</dd> 329 <dd>{{task.cpu_time_system|format_none_and_zero|floatformat:2}}</dd>
266 {% endif %} 330 {% endif %}
267 {% if task.disk_io > 0 %} 331 {% if task.disk_io > 0 %}
268 <dt> 332 <dt>
269 <i class="icon-question-sign get-help" title="Number of bytes written to and read from the disk during the task"></i> 333 <span class="glyphicon glyphicon-question-sign get-help" title="Number of bytes
334 written to and read from the disk during the task"></span>
270 Disk I/O (bytes) 335 Disk I/O (bytes)
271 </dt> 336 </dt>
272 <dd>{{task.disk_io|format_none_and_zero|intcomma}}</dd> 337 <dd>{{task.disk_io|format_none_and_zero|intcomma}}</dd>