forked from lix-project/hydra
Show whether a job still exists
In the dashboard and on the job page, indicate whether the job appears in the latest jobset eval. That way, the user gets some indication if a job has accidentally disappeared (e.g. due to an evaluation error).
This commit is contained in:
parent
4471cae07e
commit
be63c50560
|
@ -8,7 +8,7 @@ __PACKAGE__->config(
|
||||||
TEMPLATE_EXTENSION => '.tt',
|
TEMPLATE_EXTENSION => '.tt',
|
||||||
PRE_CHOMP => 1,
|
PRE_CHOMP => 1,
|
||||||
POST_CHOMP => 1,
|
POST_CHOMP => 1,
|
||||||
expose_methods => [qw/buildLogExists buildStepLogExists/]);
|
expose_methods => [qw/buildLogExists buildStepLogExists jobExists/]);
|
||||||
|
|
||||||
sub buildLogExists {
|
sub buildLogExists {
|
||||||
my ($self, $c, $build) = @_;
|
my ($self, $c, $build) = @_;
|
||||||
|
@ -22,4 +22,15 @@ sub buildStepLogExists {
|
||||||
return defined findLog($c, $step->drvpath, @outPaths);
|
return defined findLog($c, $step->drvpath, @outPaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check whether the given job is a member of the most recent jobset
|
||||||
|
# evaluation.
|
||||||
|
sub jobExists {
|
||||||
|
my ($self, $c, $job) = @_;
|
||||||
|
my $latestEval = $job->jobset->jobsetevals->search(
|
||||||
|
{ hasnewbuilds => 1},
|
||||||
|
{ rows => 1, order_by => ["id desc"] })->single;
|
||||||
|
return 0 if !defined $latestEval; # can't happen
|
||||||
|
return scalar($latestEval->builds->search({ job => $job->name })) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<tdata>
|
<tdata>
|
||||||
[% FOREACH j IN starredJobs %]
|
[% FOREACH j IN starredJobs %]
|
||||||
<tr>
|
<tr>
|
||||||
<td>[% INCLUDE renderFullJobName project=j.job.get_column('project') jobset=j.job.get_column('jobset') job=j.job.name %]</td>
|
<td><span class="[% IF !jobExists(j.job) %]disabled-job[% END %]">[% INCLUDE renderFullJobName project=j.job.get_column('project') jobset=j.job.get_column('jobset') job=j.job.name %]</span></td>
|
||||||
[% FOREACH b IN j.builds %]
|
[% FOREACH b IN j.builds %]
|
||||||
<td><a href="[% c.uri_for('/build' b.id) %]">[% INCLUDE renderBuildStatusIcon size=16 build=b %]</a></td>
|
<td><a href="[% c.uri_for('/build' b.id) %]">[% INCLUDE renderBuildStatusIcon size=16 build=b %]</a></td>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
[% PROCESS common.tt %]
|
[% PROCESS common.tt %]
|
||||||
[% hideProjectName=1 hideJobsetName=1 hideJobName=1 %]
|
[% hideProjectName=1 hideJobsetName=1 hideJobName=1 %]
|
||||||
|
|
||||||
|
[% IF !jobExists(job) %]
|
||||||
|
<div class="alert alert-warning">This job is not a member of the <a
|
||||||
|
href="[%c.uri_for('/jobset' project.name jobset.name
|
||||||
|
'evals')%]">latest evaluation</a> of its jobset. This means it was
|
||||||
|
removed or had an evaluation error.</div>
|
||||||
|
[% END %]
|
||||||
|
|
||||||
<ul class="nav nav-tabs">
|
<ul class="nav nav-tabs">
|
||||||
<li class="active"><a href="#tabs-status" data-toggle="tab">Status</a></li>
|
<li class="active"><a href="#tabs-status" data-toggle="tab">Status</a></li>
|
||||||
[% IF constituentJobs.size > 0 %]
|
[% IF constituentJobs.size > 0 %]
|
||||||
|
|
Loading…
Reference in a new issue