<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">{{ _("Home") }}</a></li>
<li class="breadcrumb-item"><a href="/builders">{{ _("Builders") }}</a></li>
- <li class="breadcrumb-item"><a href="/builder/{{ builder.name }}">{{ builder.name }}</a></li>
+ <li class="breadcrumb-item"><a href="/builders/{{ builder.name }}">{{ builder.name }}</a></li>
<li class="breadcrumb-item active">
- <a href="/builder/{{ builder.name }}/delete">{{ _("Delete") }}</a>
+ <a href="/builders/{{ builder.name }}/delete">{{ _("Delete") }}</a>
</li>
</ol>
</nav>
<div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
<div class="btn-toolbar" role="toolbar">
<div class="btn-group mr-2 mb-2" role="group">
- <a class="btn btn-danger" href="/builder/{{ builder.name }}/delete?confirmed=1">
+ <a class="btn btn-danger" href="/builders/{{ builder.name }}/delete?confirmed=1">
{{ _("Delete %s") % builder.name }}
</a>
</div>
<div class="btn-group mb-2" role="group">
- <a class="btn btn-primary" href="/builder/{{ builder.name }}">{{ _("Cancel") }}</a>
+ <a class="btn btn-primary" href="/builders/{{ builder.name }}">{{ _("Cancel") }}</a>
</div>
</div>
</div>
<li class="breadcrumb-item"><a href="/">{{ _("Home") }}</a></li>
<li class="breadcrumb-item"><a href="/builders">{{ _("Builders") }}</a></li>
<li class="breadcrumb-item active">
- <a href="/builder/{{ builder.name }}">{{ builder.name }}</a>
+ <a href="/builders/{{ builder.name }}">{{ builder.name }}</a>
</li>
</ol>
</nav>
{% if current_user and current_user.has_perm("maintain_builders") %}
<div class="dropdown-divider"></div>
{% if builder.enabled %}
- <a class="dropdown-item" href="/builder/{{ builder.name }}/disable">
+ <a class="dropdown-item" href="/builders/{{ builder.name }}/disable">
{{ _("Disable builder") }}
</a>
{% else %}
- <a class="dropdown-item" href="/builder/{{ builder.name }}/enable">
+ <a class="dropdown-item" href="/builders/{{ builder.name }}/enable">
{{ _("Enable builder") }}
</a>
{% end %}
- <a class="dropdown-item" href="/builder/{{ builder.name }}/edit">
+ <a class="dropdown-item" href="/builders/{{ builder.name }}/edit">
<i class="icon-edit"></i>
{{ _("Edit builder") }}
</a>
{% if not builder.enabled %}
- <a class="dropdown-item" href="/builder/{{ builder.name }}/renew">
+ <a class="dropdown-item" href="/builders/{{ builder.name }}/renew">
<i class="icon-refresh"></i>
{{ _("Renew passphrase") }}
</a>
{% end %}
- <a class="dropdown-item"href="/builder/{{ builder.name }}/delete">
+ <a class="dropdown-item"href="/builders/{{ builder.name }}/delete">
<i class="icon-trash"></i>
{{ _("Delete builder") }}
</a>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">{{ _("Home") }}</a></li>
<li class="breadcrumb-item"><a href="/builders">{{ _("Builders") }}</a></li>
- <li class="breadcrumb-item"><a href="/builder/{{ builder.name }}">{{ builder.name }}</a></li>
+ <li class="breadcrumb-item"><a href="/builders/{{ builder.name }}">{{ builder.name }}</a></li>
<li class="breadcrumb-item active">
- <a href="/builder/{{ builder.name }}/edit">{{ _("Manage") }}</a>
+ <a href="/builders/{{ builder.name }}/edit">{{ _("Manage") }}</a>
</li>
</ol>
</nav>
</fieldset>
<button type="submit" class="btn btn-primary">{{ _("Save changes") }}</button>
- <a class="btn" href="/builder/{{ builder.name }}">{{ _("Cancel") }}</a>
+ <a class="btn" href="/builders/{{ builder.name }}">{{ _("Cancel") }}</a>
</form>
</div>
</div>
{{ _("Actions") }}
</button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
- <a class="dropdown-item" href="/builder/new">{{ _("Create new builder") }}</a>
+ <a class="dropdown-item" href="/builders/new">{{ _("Create new builder") }}</a>
</div>
</div>
{% end %}
{% end %}
</td>
<td>
- <a href="/builder/{{ builder.name }}">{{ builder.name }}</a>
+ <a href="/builders/{{ builder.name }}">{{ builder.name }}</a>
<br>
{{ builder.cpu_model or _("Unknown CPU") }}
{% if builder.mem_total %}
<li class="breadcrumb-item"><a href="/">{{ _("Home") }}</a></li>
<li class="breadcrumb-item"><a href="/builders">{{ _("Builders") }}</a></li>
<li class="breadcrumb-item active">
- <a href="/builder/new">{{ _("Create new builder") }}</a>
+ <a href="/builders/new">{{ _("Create new builder") }}</a>
</li>
</ol>
</nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">{{ _("Home") }}</a></li>
<li class="breadcrumb-item"><a href="/builders">{{ _("Builders") }}</a></li>
- <li class="breadcrumb-item"><a href="/builder/{{ builder.name }}">{{ builder.name }}</a></li>
+ <li class="breadcrumb-item"><a href="/builders/{{ builder.name }}">{{ builder.name }}</a></li>
<li class="breadcrumb-item active">
- <a href="/builder/{{ builder.name }}/edit">{{ _("Manage") }}</a>
+ <a href="/builders/{{ builder.name }}/edit">{{ _("Manage") }}</a>
</li>
</ol>
</nav>
<div class="row justify-content-end">
<div class="col-12 col-sm-12 col-md-3 col-lg-2 col-xl-2">
- <a class="btn btn-primary btn-block" href="/builder/{{ builder.name }}">{{ _("Next") }}</a>
+ <a class="btn btn-primary btn-block" href="/builders/{{ builder.name }}">{{ _("Next") }}</a>
</div>
</div>
{% end block %}
<tr>
<td class="col1">{{ _("Host") }}</td>
<td class="col2">
- <a href="/builder/{{ file.build_host }}">{{ file.build_host }}</a>
+ <a href="/builders/{{ file.build_host }}">{{ file.build_host }}</a>
</td>
</tr>
<tr>
<tr>
<td class="col1">{{ _("Build server") }}</td>
<td class="col2">
- <a href="/builder/{{ job.builder.name }}">{{ job.builder.name }}</a>
+ <a href="/builders/{{ job.builder.name }}">{{ job.builder.name }}</a>
</td>
<td class="col3">
</td>
<td>
{% if job.builder %}
- <a href="/builder/{{ job.builder.name }}">{{ job.builder.name }}</a>
+ <a href="/builders/{{ job.builder.name }}">{{ job.builder.name }}</a>
{% else %}
<span class="text-muted">{{ _("No builder assigned.") }}</span>
{% end %}
</td>
<td>
{% if job.builder %}
- <a href="/builder/{{ job.builder.name }}">{{ job.builder.name }}</a>
+ <a href="/builders/{{ job.builder.name }}">{{ job.builder.name }}</a>
{% else %}
{{ _("N/A") }}
{% end %}
<p class="card-text">
{{ _("Time") }}: {{ format_time(j.duration, shorter=True) }} <br>
{% if j.builder %}
- {{ _("Builder") }}: <a href="/builder/{{ j.builder.name }}">{{ j.builder.name }}</a>
+ {{ _("Builder") }}: <a href="/builders/{{ j.builder.name }}">{{ j.builder.name }}</a>
{% end %}
</p>
</div>
<td>
{% if job.builder %}
- <a href="/builder/{{ job.builder.name }}">
+ <a href="/builders/{{ job.builder.name }}">
{{ job.builder.name }}
</a>
{% else %}
<tr>
<td>{{ _("Build host") }}</td>
<td>
- <a href="/builder/{{ pkg.build_host }}">{{ pkg.build_host }}</a>
+ <a href="/builders/{{ pkg.build_host }}">{{ pkg.build_host }}</a>
</td>
</tr>
<tr>
<td>{{ upload.filename }}</td>
<td>
{% if upload.builder %}
- <a href="/builder/{{ upload.builder.name }}">
+ <a href="/builders/{{ upload.builder.name }}">
{{ upload.builder.name }}
</a>
{% elif upload.user %}
# Builders
(r"/builders", builders.BuilderListHandler),
- (r"/builder/new", builders.BuilderNewHandler),
- (r"/builder/([A-Za-z0-9\-\.]+)/enable", builders.BuilderEnableHander),
- (r"/builder/([A-Za-z0-9\-\.]+)/disable", builders.BuilderDisableHander),
- (r"/builder/([A-Za-z0-9\-\.]+)/delete", builders.BuilderDeleteHandler),
- (r"/builder/([A-Za-z0-9\-\.]+)/edit", builders.BuilderEditHandler),
- (r"/builder/([A-Za-z0-9\-\.]+)/renew", builders.BuilderRenewPassphraseHandler),
- (r"/builder/([A-Za-z0-9\-\.]+)", builders.BuilderDetailHandler),
+ (r"/builders/new", builders.BuilderNewHandler),
+ (r"/builders/([A-Za-z0-9\-\.]+)/enable", builders.BuilderEnableHander),
+ (r"/builders/([A-Za-z0-9\-\.]+)/disable", builders.BuilderDisableHander),
+ (r"/builders/([A-Za-z0-9\-\.]+)/delete", builders.BuilderDeleteHandler),
+ (r"/builders/([A-Za-z0-9\-\.]+)/edit", builders.BuilderEditHandler),
+ (r"/builders/([A-Za-z0-9\-\.]+)/renew", builders.BuilderRenewPassphraseHandler),
+ (r"/builders/([A-Za-z0-9\-\.]+)", builders.BuilderDetailHandler),
+ (r"/builder/([A-Za-z0-9\-\.]+)", builders.RedirectHandler),
# Distributions
(r"/distros", distributions.DistributionListHandler),
with self.db.transaction():
builder.description = self.get_argument("description", None)
- self.redirect("/builder/%s" % builder.hostname)
+ self.redirect("/builders/%s" % builder.hostname)
class BuilderNewHandler(base.BaseHandler):
max_jobs = 1
builder.max_jobs = max_jobs
- self.redirect("/builder/%s" % builder.hostname)
+ self.redirect("/builders/%s" % builder.hostname)
class BuilderRenewPassphraseHandler(base.BaseHandler):
with self.db.transaction():
builder.enabled = self.enabled
- self.redirect("/builder/%s" % builder.name)
+ self.redirect("/builders/%s" % builder.name)
class BuilderEnableHander(BuilderStatusChangeHandler):
class BuilderDisableHander(BuilderStatusChangeHandler):
enabled = False
+
+
+class RedirectHandler(base.BaseHandler):
+ def get(self, hostname):
+ self.redirect("/builders/%s" % hostname, permanent=True)