]>
Commit | Line | Data |
---|---|---|
2ae27978 | 1 | {% extends "../base.html" %} |
9137135a MT |
2 | |
3 | {% block title %}{{ _("Builder") }}: {{ builder.name }}{% end block %} | |
4 | ||
5 | {% block body %} | |
f6e6ff79 MT |
6 | <ul class="breadcrumb"> |
7 | <li> | |
8 | <a href="/">{{ _("Home") }}</a> | |
9 | <span class="divider">/</span> | |
10 | </li> | |
11 | <li> | |
12 | <a href="/builders">{{ _("Builders") }}</a> | |
13 | <span class="divider">/</span> | |
14 | </li> | |
15 | <li class="active"> | |
5aa556bf | 16 | <a href="/builder/{{ builder.name }}">{{ builder.name }}</a> |
f6e6ff79 MT |
17 | </li> |
18 | </ul> | |
19 | ||
9177f86a MT |
20 | <div class="btn-group pull-right"> |
21 | <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> | |
22 | {{ _("Actions") }} <span class="caret"></span> | |
23 | </a> | |
24 | <ul class="dropdown-menu"> | |
25 | <li> | |
26 | <a href="/jobs?builder={{ builder.name }}"> | |
27 | {{ _("Show jobs by this builder") }} | |
28 | </a> | |
29 | </li> | |
30 | {% if current_user and current_user.has_perm("maintain_builders") %} | |
31 | <li class="divider"></li> | |
32 | ||
33 | {% if builder.enabled %} | |
34 | <li> | |
35 | <a href="/builder/{{ builder.name }}/disable"> | |
36 | {{ _("Disable builder") }} | |
37 | </a> | |
38 | </li> | |
39 | {% else %} | |
40 | <li> | |
41 | <a href="/builder/{{ builder.name }}/enable"> | |
42 | {{ _("Enable builder") }} | |
43 | </a> | |
44 | </li> | |
45 | {% end %} | |
46 | ||
47 | <li> | |
48 | <a href="/builder/{{ builder.name }}/edit"> | |
49 | <i class="icon-edit"></i> | |
50 | {{ _("Edit builder") }} | |
51 | </a> | |
52 | </li> | |
53 | ||
54 | {% if not builder.enabled %} | |
55 | <li> | |
56 | <a href="/builder/{{ builder.name }}/renew"> | |
57 | <i class="icon-refresh"></i> | |
58 | {{ _("Renew passphrase") }} | |
59 | </a> | |
60 | </li> | |
61 | {% end %} | |
62 | ||
63 | <li> | |
64 | <a href="/builder/{{ builder.name }}/delete"> | |
65 | <i class="icon-trash"></i> | |
66 | {{ _("Delete builder") }} | |
67 | </a> | |
68 | </li> | |
69 | {% end %} | |
70 | </ul> | |
71 | </div> | |
72 | ||
f96eb5ed MT |
73 | <div class="page-header"> |
74 | <h2>{{ _("Builder") }}: {{ builder.name }}</h2> | |
75 | </div> | |
76 | ||
f6e6ff79 | 77 | {% if builder.overload %} |
f96eb5ed MT |
78 | <div class="alert alert-block alert-warning"> |
79 | <h4 class="alert-heading">{{ _("Warning") }}!</h4> | |
80 | {{ _("This builder is overloaded.") }} | |
81 | {{ _("That means it will not take any additional jobs although it has not reached its threshold of running jobs, yet.") }} | |
82 | {{ _("New jobs will be started automatically after the load decreased.") }} | |
f6e6ff79 MT |
83 | </div> |
84 | {% end %} | |
85 | ||
f6e6ff79 | 86 | <div class="row"> |
f96eb5ed MT |
87 | <div class="span5"> |
88 | <table class="table table-striped table-hover"> | |
f6e6ff79 MT |
89 | <tbody> |
90 | <tr> | |
91 | <td>{{ _("State") }}</td> | |
92 | <td> | |
93 | {% if builder.status == "enabled" %} | |
94 | {{ _("Enabled") }} | |
95 | {% elif builder.status == "disabled" %} | |
96 | {{ _("Disabled") }} | |
97 | {% elif builder.status == "deleted" %} | |
98 | {{ _("Deleted") }} | |
99 | {% else %} | |
5aa556bf | 100 | {{ _("Unknown status: %s") % builder.status }} |
f6e6ff79 MT |
101 | {% end %} |
102 | </td> | |
103 | </tr> | |
104 | <tr> | |
105 | <td>{{ _("Parallel builds") }}</td> | |
106 | <td>{{ _("One job only.", "Up to %(num)s jobs.", builder.max_jobs) % { "num" : builder.max_jobs } }}</td> | |
107 | </tr> | |
108 | <tr> | |
109 | <td>{{ _("This host builds") }}</td> | |
110 | <td> | |
111 | <ul> | |
112 | {% for type in builder.build_types %} | |
113 | <li> | |
114 | {% if type == "release" %} | |
115 | {{ _("Release builds") }} | |
116 | {% elif type == "scratch" %} | |
117 | {{ _("Scratch builds") }} | |
118 | {% elif type == "test" %} | |
119 | {{ _("Test builds") }} | |
120 | {% end %} | |
121 | </li> | |
122 | {% end %} | |
123 | </ul> | |
124 | </td> | |
125 | </tr> | |
126 | </tbody> | |
127 | </table> | |
128 | ||
129 | {% if builder.description %} | |
130 | <h2>{{ _("Remarks") }}</h2> | |
131 | <p> | |
4c6be289 | 132 | {% module Text(builder.description) %} |
f6e6ff79 MT |
133 | </p> |
134 | {% end %} | |
135 | </div> | |
136 | ||
f96eb5ed MT |
137 | <div class="span7"> |
138 | <table class="table table-striped table-hover"> | |
f6e6ff79 | 139 | <tbody> |
c2902b29 MT |
140 | <tr> |
141 | <td>{{ _("OS") }}</td> | |
142 | <td> | |
143 | {{ builder.os_name or _("N/A") }} | |
144 | </td> | |
145 | </tr> | |
f6e6ff79 MT |
146 | <tr> |
147 | <td>{{ _("Pakfire version") }}</td> | |
148 | <td> | |
5aa556bf | 149 | {{ builder.pakfire_version or _("N/A") }} |
f6e6ff79 MT |
150 | </td> |
151 | </tr> | |
152 | <tr> | |
153 | <td>{{ _("Supported architectures") }}</td> | |
154 | <td> | |
c2902b29 | 155 | {{ locale.list(builder.arches) }} |
f6e6ff79 MT |
156 | </td> |
157 | </tr> | |
158 | <tr> | |
159 | <td>{{ _("CPU model") }}</td> | |
160 | <td> | |
5aa556bf | 161 | {{ builder.cpu_model or _("Unknown") }} |
f6e6ff79 MT |
162 | </td> |
163 | </tr> | |
164 | <tr> | |
165 | <td>{{ _("CPU count") }}</td> | |
166 | <td>{{ builder.cpu_count }}</td> | |
167 | </tr> | |
168 | <tr> | |
c2902b29 MT |
169 | <td>{{ _("Bogomips") }}</td> |
170 | <td>{{ builder.cpu_bogomips or _("N/A") }}</td> | |
171 | </tr> | |
172 | <tr> | |
173 | <td colspan="2"> | |
174 | {% if builder.mem_total %} | |
175 | <h6> | |
176 | <span class="pull-right"> | |
177 | {{ format_size(builder.mem_used) }}/{{ format_size(builder.mem_total) }} | |
178 | </span> | |
179 | ||
180 | {{ _("Memory") }} | |
181 | </h6> | |
182 | ||
183 | <div class="progress"> | |
184 | <div class="bar" style="width: {{ "%.2f%%" % builder.mem_percentage }}"></div> | |
185 | </div> | |
186 | {% end %} | |
187 | ||
188 | {% if builder.swap_total %} | |
189 | <h6> | |
190 | <span class="pull-right"> | |
191 | {{ format_size(builder.swap_used) }}/{{ format_size(builder.swap_total) }} | |
192 | </span> | |
193 | ||
194 | {{ _("SWAP space") }} | |
195 | </h6> | |
196 | ||
197 | <div class="progress"> | |
198 | <div class="bar bar-danger" style="width: {{ "%.2f%%" % builder.swap_percentage }}"></div> | |
199 | </div> | |
200 | {% end %} | |
201 | ||
202 | {% if not builder.mem_total and not builder.swap_total %} | |
203 | <span class="muted">{{ _("No memory information available.") }}</span> | |
204 | {% end %} | |
205 | </td> | |
f6e6ff79 MT |
206 | </tr> |
207 | <tr> | |
208 | <td>{{ _("Load average") }}</td> | |
209 | <td> | |
5aa556bf | 210 | {{ builder.loadavg or _("N/A") }} |
f6e6ff79 MT |
211 | {% if builder.overload %} |
212 | <span class="label label-important">{{ _("Overload") }}</span> | |
213 | {% end %} | |
214 | </td> | |
215 | </tr> | |
216 | <tr> | |
217 | <td>{{ _("Free disk space") }}</td> | |
c2902b29 | 218 | <td>{{ format_size(builder.space_free or 0) }}</td> |
f6e6ff79 | 219 | </tr> |
9137135a | 220 | |
f6e6ff79 MT |
221 | <tr> |
222 | <td>{{ _("Host key") }}</td> | |
223 | <td> | |
224 | {{ builder.host_key_id or _("N/A") }} | |
225 | </td> | |
226 | </tr> | |
227 | </tbody> | |
228 | </table> | |
229 | </div> | |
230 | </div> | |
9137135a | 231 | |
163d9d8b MT |
232 | {% if jobs %} |
233 | <hr> | |
f96eb5ed | 234 | |
163d9d8b MT |
235 | <h3>{{ _("Active and pending jobs") }}</h3> |
236 | {% module JobsList(jobs) %} | |
237 | {% end %} | |
238 | ||
239 | {% if log %} | |
240 | <hr> | |
241 | ||
242 | <h3>{{ _("Log") }}</h3> | |
243 | {% module Log(log) %} | |
244 | {% end %} | |
9137135a | 245 | {% end block %} |