Remove the Errors page
[?]
Oct 3, 2013, 1:00 PM
G2WXEQHE6WCBN25VLO6XF3FJAOCJLMRKYOIQLETGIWTR6ON2AIVACDependencies
- [2]
NRSKJPP4makeLink -> menuItem - [3]
VG4QG336Remove tablesorter - [4]
AK2UZDS2Jobset page: Add a new tab to show job status in a matrix - [5]
KXGOUX7P* Creating releases. - [6]
LSZLZHJYAllow users to edit their own settings - [7]
CQTN62OHDie tabs die - [8]
3EGKZC3Chydra: in jobstatus pages, allow maintainer query argument to show only the packages you are maintaining - [9]
AS2OXLRM* Editing releases. - [10]
SZYDW2DGhydra: added some user admin - [11]
P5X4P6VK* Renaming "release sets" to "views" (not finished yet). Having - [12]
5DSDXORDhydra: missing plain.tt - [13]
VH5ZABDRAdd a page to show the latest evaluations for the entire server - [14]
4UUKWXDFJobset page: Show last evaluation time - [15]
J3RYO2CURemove the jobs status page - [16]
LFVXESGIRemove already disabled jobstatus code - [17]
OEPUOUNBUsing twitter bootstrap for more consistent looks for Hydra - [18]
AKAZKCR6* At top-level and for each project, provide two channels: "latest" - [19]
N4ODPYP7Job page: Remove channel tab - [20]
QTC3SYBMJobset page: Load the jobs and status tabs on demand - [21]
JY7BXXOPSplit viewing and editing a project - [22]
6GEU36HWRemove obsolete CSS classes - [23]
JARRBLZDBootstrapify the Hydra forms (except the project and jobset edit pages) - [24]
FV2M6MOThydra: use autoconf/-make - [25]
CQQSJLONOn aggregate job pages, show a matrix showing all the constituent builds - [26]
IHU3IMC6Revert changeset 4399683fa0e9abb64f63affc7caca7f77abea1b7, make jobset options available to project members as well - [27]
WRIU3S5E* UI for cloning builds (not functional yet). - [28]
6FRLEP4Pfirst try for timeline of last 24 hours in hydra - [29]
OR5SJ42YShow releases in a tab on the project page - [30]
GIWHL67VRemove the job status pages - [31]
D7X6XTKQIntegrate the "Job status" and "All jobs" tabs - [32]
D7PL2VWUMove more actions from the top bar - [33]
U72VNKRURemove unused file - [34]
JOVVHIJXRemove all entry points to modify machines - [35]
RI4S7SYT* Job status: show the active jobs. - [36]
J7EE2XZAFix a huge performance regression in the jobstatus page - [37]
ZD5AEKWM* Job status / error pages: show only active jobs. - [38]
NEQ4BISOAdd bootstrap.zip - [39]
FPK5LF53* Put the project-related actions in a separate controller. Put the - [40]
HPEG2RHVMerge the BuildResultInfo table into the Builds table - [41]
TRDGNILTRemove unused file - [42]
7ZQAHJQMFix indentation - [43]
UWVMQIAC* Refactoring. - [44]
RBNQKATL* Adding persistant releases. A release is a named set of builds. - [45]
4JS4DWHDAll/recent builds -> Latest builds - [46]
OX6NYJDVSplit viewing and editing a jobset - [47]
XDDCO6CH* hydra: add dependency list with links to logfiles - [48]
QL55ECJ6- adapted ui for hydra, more in line with nixos.org website - [49]
DEMSSSB2* Controller for jobs which inherits all actions in ListBuilds. So - [50]
Q4VDOA76Replace last 5 builds on jobset page with last 5 evaluations. Moved hide/unhide and evaluate options to jobset topmenu. - [51]
SMTMFEKEhydra: add missing templates - [52]
LKPVSUCIBuilds page: Remove redundant tab titles - [53]
EVYSAFB2Transpose the aggregate constituents table - [54]
X5UVREJY* PostgreSQL compatibility. - [55]
EFWN7JBV* Added a status page that shows all the currently executing build steps. - [56]
HU5DPGCVThere is only one channel, so drop the "(latest)" suffix - [57]
36M6DGITShow the runtime/build dependencies in the build page - [58]
3JBUMW3Eforgot to commit a file - [59]
RSEGBU6CHydra/20: Jobset clone feature - [60]
PZL3SZM3Give every page a consistent title - [61]
64IV56HIReplace bootstrap tarball - [62]
TCHEWSZL* The "latest" channel shouldn't contain inactive jobs. - [63]
AH2YD57S* More database hackery. - [64]
SJN2QPWH* Big speed-up of the job status page and the channel generation (such - [65]
RAKTHYAI* In the job status and error pages, show when the status of a job - [66]
G5YSUSNZIn build tables, hide the project, jobset and/or job name if they're constant - [67]
GEL2WHSUMove channel link to top menu of Project and Jobset. - [68]
ZWCTAZGLadded newsitems, added some admin options to clear various caches. - [69]
KKJNJHO5Update bootstrap to 2.0.3 - [70]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [71]
U4TD3AIQAdd support for viewing jobset evaluations - [72]
D5QIOJGP* Move everything up one directory. - [73]
3PNG7NIBRemove trailing whitespace - [74]
75XUS62Y* Added a page to quickly see all failed builds and failed evaluations - [75]
R2PON6R7Allow non-admin users to see the machine status page - [76]
HZWUT4YNAllow users to reproduce builds on their own systems - [77]
2DTJNAMXAllow project members to create jobsets, regression introduced by bootstrap make-over. Currently all logged in users see these options, however, only on performing the action the privileges are checked. Need to change that in the future. - [78]
UICHT2PSAdd a search feature - [79]
2BUX775I* More release -> view. - [80]
Z4KRJX4Q* In the last succeeded / job status queries, use the Builds.isCurrent - [*]
3HZY24CX* Make jobsets viewable under - [*]
J5UVLXOK* Start of a basic Catalyst web interface.
Change contents
- edit in src/lib/Hydra/Base/Controller/ListBuilds.pm at line 8[5.77]→[5.77:123](∅→∅),[5.123]→[5.812:813](∅→∅),[5.813]→[5.7:65](∅→∅),[5.7]→[5.7:65](∅→∅),[5.65]→[5.165:166](∅→∅),[5.326]→[5.165:166](∅→∅),[5.165]→[5.165:166](∅→∅),[5.166]→[5.0:49](∅→∅),[5.49]→[5.66:149](∅→∅),[5.603]→[5.66:149](∅→∅),[5.149]→[5.50:176](∅→∅),[5.167]→[5.0:59](∅→∅),[5.176]→[5.0:59](∅→∅),[5.741]→[5.0:59](∅→∅),[5.59]→[5.787:800](∅→∅),[5.787]→[5.787:800](∅→∅),[5.800]→[5.327:349](∅→∅),[5.166]→[5.327:349](∅→∅),[5.349]→[5.0:1](∅→∅),[5.1]→[5.166:167](∅→∅),[5.349]→[5.166:167](∅→∅),[5.166]→[5.166:167](∅→∅),[5.3]→[5.4:69](∅→∅),[5.4]→[5.4:69](∅→∅),[5.69]→[5.814:841](∅→∅),[5.841]→[5.97:534](∅→∅),[5.97]→[5.97:534](∅→∅),[5.534]→[5.177:250](∅→∅),[5.63]→[5.330:332](∅→∅),[5.86]→[5.330:332](∅→∅),[5.170]→[5.330:332](∅→∅),[5.250]→[5.330:332](∅→∅),[5.490]→[5.330:332](∅→∅),[5.630]→[5.330:332](∅→∅),[5.879]→[5.330:332](∅→∅),[5.330]→[5.330:332](∅→∅)
sub getJobStatus {my ($self, $c) = @_;my $maintainer = $c->request->params->{"maintainer"};my $latest = $c->stash->{jobStatus}->search(defined $maintainer ? { maintainers => { like => "%$maintainer%" } } : {},{ '+select' => ["me.statusChangeId", "me.statusChangeTime"], '+as' => ["statusChangeId", "statusChangeTime"], order_by => "coalesce(statusChangeTime, 0) desc"});return $latest;}# A convenient way to see all the errors - i.e. things demanding# attention - at a glance.sub errors : Chained('get_builds') PathPart Args(0) {my ($self, $c) = @_;$c->stash->{template} = 'errors.tt';$c->stash->{brokenJobsets} =[$c->stash->{allJobsets}->search({errormsg => {'!=' => ''}})]if defined $c->stash->{allJobsets};$c->stash->{brokenJobs} =[$c->stash->{allJobs}->search({errormsg => {'!=' => ''}})]if defined $c->stash->{allJobs};$c->stash->{brokenBuilds} =[getJobStatus($self, $c)->search({buildStatus => {'!=' => 0}})];} - replacement in src/lib/Hydra/Controller/Job.pm at line 43
{ aggregate => { -in => $job->builds->search({}, { columns => ["id"], order_by => "id desc", rows => 15 })->as_query } },{ join => 'aggregateconstituents_constituents',columns => ['id', 'job', 'finished', 'buildstatus'],+select => ['aggregateconstituents_constituents.aggregate'],+as => ['aggregate']});{ aggregate => { -in => $job->builds->search({}, { columns => ["id"], order_by => "id desc", rows => 15 })->as_query } },{ join => 'aggregateconstituents_constituents',columns => ['id', 'job', 'finished', 'buildstatus'],+select => ['aggregateconstituents_constituents.aggregate'],+as => ['aggregate']}); - replacement in src/lib/Hydra/Controller/Job.pm at line 53[5.643]→[5.643:681](∅→∅),[5.681]→[5.124:198](∅→∅),[5.198]→[4.0:81](∅→∅),[4.81]→[5.819:852](∅→∅),[5.819]→[5.819:852](∅→∅)
my $jobName = $b->get_column('job');$aggregates->{$b->get_column('aggregate')}->{constituents}->{$jobName} ={ id => $b->id, finished => $b->finished, buildstatus => $b->buildstatus };$constituentJobs{$jobName} = 1;my $jobName = $b->get_column('job');$aggregates->{$b->get_column('aggregate')}->{constituents}->{$jobName} ={ id => $b->id, finished => $b->finished, buildstatus => $b->buildstatus };$constituentJobs{$jobName} = 1; - replacement in src/lib/Hydra/Controller/Job.pm at line 60
# FIXME: could be done in one query.$aggregates->{$agg}->{build} =$c->model('DB::Builds')->find({id => $agg}, {columns => [@buildListColumns]}) or die;# FIXME: could be done in one query.$aggregates->{$agg}->{build} =$c->model('DB::Builds')->find({id => $agg}, {columns => [@buildListColumns]}) or die; - edit in src/lib/Hydra/Controller/Job.pm at line 76
$c->stash->{allJobs} = $c->stash->{job_}; - edit in src/lib/Hydra/Controller/Jobset.pm at line 188
$c->stash->{allJobsets} = $c->stash->{jobset_};$c->stash->{allJobs} = $c->stash->{jobset}->jobs; - edit in src/lib/Hydra/Controller/Project.pm at line 207
$c->stash->{allJobsets} = $c->stash->{project}->jobsets;$c->stash->{allJobs} = $c->stash->{project}->jobs; - edit in src/lib/Hydra/Controller/Root.pm at line 154
$c->stash->{allJobsets} = $c->model('DB::Jobsets');$c->stash->{allJobs} = $c->model('DB::Jobs'); - file deletion: errors.tt
[% WRAPPER layout.tt title="Errors" %][% PROCESS common.tt %]<p>This page provides a quick way to see how FUBARed your packagesare. It shows job expressions that don’t evaluate properly and jobsthat don’t build.</p>[% haveErrors = 0 %][% IF brokenJobsets && brokenJobsets.size > 0; haveErrors = 1 %]<h2>Evaluation errors in jobsets</h2><table class="table table-condensed table-striped"><thead><tr><th>Name</th><th>Error</th></tr></thead><tdata>[% FOREACH j IN brokenJobsets %]<tr><td>[% INCLUDE renderFullJobsetName project=j.project.name jobset=j.name %]</td><td><pre class="error">[% HTML.escape(j.errormsg) %]</pre></td></tr>[% END %]</tdata></table>[% END %][% IF brokenJobs && brokenJobs.size > 0; haveErrors = 1 %]<h2>Evaluation errors in jobs</h2><table class="table table-condensed table-striped"><thead><tr><th>Name</th><th>Error</th></tr></thead><tdata>[% FOREACH j IN brokenJobs %]<tr><td>[% INCLUDE renderFullJobName project=j.project.name jobset=j.jobset.name job=j.name %]</td><td><pre class="error">[% HTML.escape(j.errormsg) %]</pre></td></tr>[% END %]</tdata></table>[% END %][% IF brokenBuilds && brokenBuilds.size > 0; haveErrors = 1 %]<h2>Broken builds</h2>[% INCLUDE renderBuildList builds=brokenBuilds showStatusChange=1 hideProjectName=project hideJobsetName=jobset hideJobName=job %][% END %][% IF !haveErrors %]<p><strong>There are currently no problems.</strong></p>[% END %][% END %] - edit in src/root/topbar.tt at line 36
[% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('errors'), [project.name]) title = "Errors" %] - edit in src/root/topbar.tt at line 53
[% INCLUDE menuItemuri = c.uri_for(c.controller('Jobset').action_for('errors'), [project.name, jobset.name])title = "Errors" %] - edit in src/root/topbar.tt at line 67
[% INCLUDE menuItemuri = c.uri_for(c.controller('Job').action_for('errors'), [project.name, jobset.name, job.name])title = "Errors" %]