Add action to restart all failed builds in an eval
This commit is contained in:
parent
b9ebd38edf
commit
19b52e907f
|
@ -184,16 +184,28 @@ sub cancel : Chained('evalChain') PathPart('cancel') Args(0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sub restart_aborted : Chained('evalChain') PathPart('restart-aborted') Args(0) {
|
sub restart {
|
||||||
my ($self, $c) = @_;
|
my ($self, $c, $condition) = @_;
|
||||||
requireProjectOwner($c, $c->stash->{eval}->project);
|
requireProjectOwner($c, $c->stash->{eval}->project);
|
||||||
my $builds = $c->stash->{eval}->builds->search({ finished => 1, buildstatus => { -in => [3, 4, 9] } });
|
my $builds = $c->stash->{eval}->builds->search({ finished => 1, buildstatus => $condition });
|
||||||
my $n = restartBuilds($c->model('DB')->schema, $builds);
|
my $n = restartBuilds($c->model('DB')->schema, $builds);
|
||||||
$c->flash->{successMsg} = "$n builds have been restarted.";
|
$c->flash->{successMsg} = "$n builds have been restarted.";
|
||||||
$c->res->redirect($c->uri_for($c->controller('JobsetEval')->action_for('view'), $c->req->captures));
|
$c->res->redirect($c->uri_for($c->controller('JobsetEval')->action_for('view'), $c->req->captures));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub restart_aborted : Chained('evalChain') PathPart('restart-aborted') Args(0) {
|
||||||
|
my ($self, $c) = @_;
|
||||||
|
restart($self, $c, { -in => [3, 4, 9] });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub restart_failed : Chained('evalChain') PathPart('restart-failed') Args(0) {
|
||||||
|
my ($self, $c) = @_;
|
||||||
|
restart($self, $c, { 'not in' => [0] });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sub bump : Chained('evalChain') PathPart('bump') Args(0) {
|
sub bump : Chained('evalChain') PathPart('bump') Args(0) {
|
||||||
my ($self, $c) = @_;
|
my ($self, $c) = @_;
|
||||||
requireProjectOwner($c, $c->stash->{eval}->project); # FIXME: require admin?
|
requireProjectOwner($c, $c->stash->{eval}->project); # FIXME: require admin?
|
||||||
|
|
|
@ -50,6 +50,9 @@ c.uri_for(c.controller('JobsetEval').action_for('view'),
|
||||||
[% IF unfinished.size > 0 %]
|
[% IF unfinished.size > 0 %]
|
||||||
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('cancel'), [eval.id]) %]">Cancel all scheduled builds</a></li>
|
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('cancel'), [eval.id]) %]">Cancel all scheduled builds</a></li>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
[% IF aborted.size > 0 || stillFail.size > 0 || nowFail.size > 0 %]
|
||||||
|
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_failed'), [eval.id]) %]">Restart all failed builds</a></li>
|
||||||
|
[% END %]
|
||||||
[% IF aborted.size > 0 %]
|
[% IF aborted.size > 0 %]
|
||||||
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_aborted'), [eval.id]) %]">Restart all aborted builds</a></li>
|
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_aborted'), [eval.id]) %]">Restart all aborted builds</a></li>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
Loading…
Reference in a new issue