Merge pull request #1478 from qowoz/fix-actions
jobset-eval: fix actions not showing up sometimes for new jobs
This commit is contained in:
commit
bdde73acbd
@ -76,7 +76,9 @@ sub view_GET {
|
|||||||
$c->stash->{removed} = $diff->{removed};
|
$c->stash->{removed} = $diff->{removed};
|
||||||
$c->stash->{unfinished} = $diff->{unfinished};
|
$c->stash->{unfinished} = $diff->{unfinished};
|
||||||
$c->stash->{aborted} = $diff->{aborted};
|
$c->stash->{aborted} = $diff->{aborted};
|
||||||
$c->stash->{failed} = $diff->{failed};
|
$c->stash->{totalAborted} = $diff->{totalAborted};
|
||||||
|
$c->stash->{totalFailed} = $diff->{totalFailed};
|
||||||
|
$c->stash->{totalQueued} = $diff->{totalQueued};
|
||||||
|
|
||||||
$c->stash->{full} = ($c->req->params->{full} || "0") eq "1";
|
$c->stash->{full} = ($c->req->params->{full} || "0") eq "1";
|
||||||
|
|
||||||
|
@ -32,7 +32,12 @@ sub buildDiff {
|
|||||||
removed => [],
|
removed => [],
|
||||||
unfinished => [],
|
unfinished => [],
|
||||||
aborted => [],
|
aborted => [],
|
||||||
failed => [],
|
|
||||||
|
# These summary counters cut across the categories to determine whether
|
||||||
|
# actions such as "Restart all failed" or "Bump queue" are available.
|
||||||
|
totalAborted => 0,
|
||||||
|
totalFailed => 0,
|
||||||
|
totalQueued => 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
my $n = 0;
|
my $n = 0;
|
||||||
@ -80,8 +85,15 @@ sub buildDiff {
|
|||||||
} else {
|
} else {
|
||||||
push @{$ret->{new}}, $build if !$found;
|
push @{$ret->{new}}, $build if !$found;
|
||||||
}
|
}
|
||||||
if (defined $build->buildstatus && $build->buildstatus != 0) {
|
|
||||||
push @{$ret->{failed}}, $build;
|
if ($build->finished != 0 && $build->buildstatus != 0) {
|
||||||
|
if ($aborted) {
|
||||||
|
++$ret->{totalAborted};
|
||||||
|
} else {
|
||||||
|
++$ret->{totalFailed};
|
||||||
|
}
|
||||||
|
} elsif ($build->finished == 0) {
|
||||||
|
++$ret->{totalQueued};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,16 +48,16 @@ c.uri_for(c.controller('JobsetEval').action_for('view'),
|
|||||||
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#">Actions</a>
|
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#">Actions</a>
|
||||||
<div class="dropdown-menu">
|
<div class="dropdown-menu">
|
||||||
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('create_jobset'), [eval.id]) %]">Create a jobset from this evaluation</a>
|
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('create_jobset'), [eval.id]) %]">Create a jobset from this evaluation</a>
|
||||||
[% IF unfinished.size > 0 %]
|
[% IF totalQueued > 0 %]
|
||||||
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('cancel'), [eval.id]) %]">Cancel all scheduled builds</a>
|
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('cancel'), [eval.id]) %]">Cancel all scheduled builds</a>
|
||||||
[% END %]
|
[% END %]
|
||||||
[% IF aborted.size > 0 || stillFail.size > 0 || nowFail.size > 0 || failed.size > 0 %]
|
[% IF totalFailed > 0 %]
|
||||||
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_failed'), [eval.id]) %]">Restart all failed builds</a>
|
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_failed'), [eval.id]) %]">Restart all failed builds</a>
|
||||||
[% END %]
|
[% END %]
|
||||||
[% IF aborted.size > 0 %]
|
[% IF totalAborted > 0 %]
|
||||||
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_aborted'), [eval.id]) %]">Restart all aborted builds</a>
|
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_aborted'), [eval.id]) %]">Restart all aborted builds</a>
|
||||||
[% END %]
|
[% END %]
|
||||||
[% IF unfinished.size > 0 %]
|
[% IF totalQueued > 0 %]
|
||||||
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('bump'), [eval.id]) %]">Bump builds to front of queue</a>
|
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('bump'), [eval.id]) %]">Bump builds to front of queue</a>
|
||||||
[% END %]
|
[% END %]
|
||||||
</div>
|
</div>
|
||||||
|
@ -25,7 +25,10 @@ subtest "empty diff" => sub {
|
|||||||
removed => [],
|
removed => [],
|
||||||
unfinished => [],
|
unfinished => [],
|
||||||
aborted => [],
|
aborted => [],
|
||||||
failed => [],
|
|
||||||
|
totalAborted => 0,
|
||||||
|
totalFailed => 0,
|
||||||
|
totalQueued => 0,
|
||||||
},
|
},
|
||||||
"empty list of jobs returns empty diff"
|
"empty list of jobs returns empty diff"
|
||||||
);
|
);
|
||||||
@ -48,12 +51,7 @@ subtest "2 different jobs" => sub {
|
|||||||
"succeed_with_failed is a new job"
|
"succeed_with_failed is a new job"
|
||||||
);
|
);
|
||||||
|
|
||||||
is(scalar(@{$ret->{failed}}), 1, "list of failed jobs is 1 element long");
|
is($ret->{totalFailed}, 1, "total failed jobs is 1");
|
||||||
is(
|
|
||||||
$ret->{failed}[0]->get_column('id'),
|
|
||||||
$builds->{"succeed_with_failed"}->get_column('id'),
|
|
||||||
"succeed_with_failed is a failed job"
|
|
||||||
);
|
|
||||||
|
|
||||||
is(
|
is(
|
||||||
$ret->{removed},
|
$ret->{removed},
|
||||||
@ -70,9 +68,9 @@ subtest "2 different jobs" => sub {
|
|||||||
subtest "failed job with no previous history" => sub {
|
subtest "failed job with no previous history" => sub {
|
||||||
my $ret = buildDiff([$builds->{"fails"}], []);
|
my $ret = buildDiff([$builds->{"fails"}], []);
|
||||||
|
|
||||||
is(scalar(@{$ret->{failed}}), 1, "list of failed jobs is 1 element long");
|
is($ret->{totalFailed}, 1, "total failed jobs is 1");
|
||||||
is(
|
is(
|
||||||
$ret->{failed}[0]->get_column('id'),
|
$ret->{new}[0]->get_column('id'),
|
||||||
$builds->{"fails"}->get_column('id'),
|
$builds->{"fails"}->get_column('id'),
|
||||||
"fails is a failed job"
|
"fails is a failed job"
|
||||||
);
|
);
|
||||||
@ -93,7 +91,6 @@ subtest "not-yet-built job with no previous history" => sub {
|
|||||||
is($ret->{removed}, [], "removed");
|
is($ret->{removed}, [], "removed");
|
||||||
is($ret->{unfinished}, [], "unfinished");
|
is($ret->{unfinished}, [], "unfinished");
|
||||||
is($ret->{aborted}, [], "aborted");
|
is($ret->{aborted}, [], "aborted");
|
||||||
is($ret->{failed}, [], "failed");
|
|
||||||
|
|
||||||
is(scalar(@{$ret->{new}}), 1, "list of new jobs is 1 element long");
|
is(scalar(@{$ret->{new}}), 1, "list of new jobs is 1 element long");
|
||||||
is(
|
is(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user