Make "Running builds" and "Machine status" pages faster
[?]
Mar 16, 2016, 2:19 PM
O5ZANJMR27RRDAY7EVZLXZRKCKA24TFRBIZYWW7I72KG3DZQSCJACDependencies
- [2]
HWKCMAK5Remove some redundant SQL queries - [3]
AXU7D4PDMachine status page: Add link to build step - [4]
IT5AXPY2Disable channels on binary cached based Hydra instances - [5]
QAUDQPWGAdd a more concise queue page - [6]
E46TNJK6Use faster query to determine number of running builds - [7]
MOX7XJ2EMerge the BuildSchedulingInfo table into the Builds table - [8]
CQTN62OHDie tabs die - [9]
36ZTCZ4FAdd basic Persona support - [10]
6FRLEP4Pfirst try for timeline of last 24 hours in hydra - [11]
J4R2VCPPFix showing build steps in the machine status page - [12]
K42RSSSI - [13]
HRAFVVOEmake logo configurable via HYDRA_LOGO env var - [14]
MGOGOKQPadd tracker html code via HYDRA_TRACKER - [15]
R2PON6R7Allow non-admin users to see the machine status page - [16]
FPK5LF53* Put the project-related actions in a separate controller. Put the - [17]
HTL6HIBMmachine-status: Read /etc/nix.machines instead of using the BuildMachines table - [18]
2DHE2ZAKAllow Hydra to run as a private instance by requiring a login. - [19]
LZVO64YGMerge in the first bits of the API work - [20]
RFGPN7U7Machine status: Don't show removed machines anymore - [21]
TPNHTE5VRemove obsolete Builds columns and provide accurate "Running builds" - [22]
SMCOU72Fhydra: add some admin for adding/enabling/etc build machines - [23]
V6S6OYIAFormatting tweaks - [24]
EFWN7JBV* Added a status page that shows all the currently executing build steps. - [*]
J5UVLXOK* Start of a basic Catalyst web interface. - [*]
LBNVQXUB* Build the /build stuff in a separate controller. - [*]
CS7T2XFI - [*]
AFNDUSGDSet Expires headers for Hydra's binary cache - [*]
ZWCTAZGLadded newsitems, added some admin options to clear various caches.
Change contents
- replacement in src/lib/Hydra/Controller/Root.pm at line 48
$c->stash->{nrRunningBuilds} = $c->model('DB')->schema->storage->dbh->selectrow_array($c->stash->{nrRunningBuilds} = dbh($c)->selectrow_array( - replacement in src/lib/Hydra/Controller/Root.pm at line 108
$c->stash->{queued} = $c->model('DB')->schema->storage->dbh->selectall_arrayref($c->stash->{queued} = dbh($c)->selectall_arrayref( - replacement in src/lib/Hydra/Controller/Root.pm at line 122
{ finished => 0, "buildsteps.busy" => 1 },{ "buildsteps.busy" => 1 }, - replacement in src/lib/Hydra/Controller/Root.pm at line 167[7.391]→[7.416:480](∅→∅),[7.416]→[7.416:480](∅→∅),[7.480]→[7.1524:1568](∅→∅),[7.1568]→[7.543:634](∅→∅),[7.543]→[7.543:634](∅→∅)
$c->stash->{steps} = [ $c->model('DB::BuildSteps')->search({ finished => 0, 'me.busy' => 1, },{ join => [ 'build' ], order_by => [ 'machine', 'stepnr' ]} ) ];$c->stash->{steps} = dbh($c)->selectall_arrayref("select build, stepnr, s.system as system, s.drvpath as drvpath, machine, s.starttime as starttime, project, jobset, job " ."from BuildSteps s join Builds b on s.build = b.id " ."where busy = 1 order by machine, stepnr",{ Slice => {} }); - edit in src/lib/Hydra/Helper/CatalystUtils.pm at line 29
dbh - edit in src/lib/Hydra/Helper/CatalystUtils.pm at line 355
sub dbh {my ($c) = @_;return $c->model('DB')->schema->storage->dbh;} - replacement in src/root/machine-status.tt at line 42
<td><tt>[% INCLUDE renderFullJobNameOfBuild build=step.build %]</tt></td><td><tt>[% INCLUDE renderFullJobName project=step.project jobset=step.jobset job=step.job %]</tt></td> - replacement in src/root/machine-status.tt at line 44
<td><a href="[% c.uri_for('/build' step.build.id) %]">[% step.build.id %]</a></td><td><a class="row-link" href="[% c.uri_for('/build' step.build.id 'nixlog' step.stepnr 'tail-reload') %]">[% step.stepnr %]</a></td><td><a href="[% c.uri_for('/build' step.build) %]">[% step.build %]</a></td><td><a class="row-link" href="[% c.uri_for('/build' step.build 'nixlog' step.stepnr 'tail-reload') %]">[% step.stepnr %]</a></td>