Allow non-admin users to see the machine status page
[?]
Feb 20, 2013, 3:40 PM
R2PON6R7RJT63XVKGEXAIKB76RHIQL3WCDTZQM5JLKAZ7B5AZAFQCDependencies
- [2]
JZVRK5QJGroup some menu items together under a "Status" menu - [3]
P5X4P6VK* Renaming "release sets" to "views" (not finished yet). Having - [4]
RBNQKATL* Adding persistant releases. A release is a named set of builds. - [5]
RSEGBU6CHydra/20: Jobset clone feature - [6]
XDDCO6CH* hydra: add dependency list with links to logfiles - [7]
6KJXJB7Nqualify ordery_by clauses when necessary, remove unnecessary order_by's, reported by Ludo, resulted in errors in sqlite - [8]
7ZQAHJQMFix indentation - [9]
NEQ4BISOAdd bootstrap.zip - [10]
YTSIRIMK* Separate job status and all builds pages. - [11]
AS2OXLRM* Editing releases. - [12]
6FRLEP4Pfirst try for timeline of last 24 hours in hydra - [13]
QL55ECJ6- adapted ui for hydra, more in line with nixos.org website - [14]
JARRBLZDBootstrapify the Hydra forms (except the project and jobset edit pages) - [15]
SZYDW2DGhydra: added some user admin - [16]
D5QIOJGP* Move everything up one directory. - [17]
OEPUOUNBUsing twitter bootstrap for more consistent looks for Hydra - [18]
MOX7XJ2EMerge the BuildSchedulingInfo table into the Builds table - [19]
SMTMFEKEhydra: add missing templates - [20]
2BUX775I* More release -> view. - [21]
FV2M6MOThydra: use autoconf/-make - [22]
5DSDXORDhydra: missing plain.tt - [23]
75XUS62Y* Added a page to quickly see all failed builds and failed evaluations - [24]
WRIU3S5E* UI for cloning builds (not functional yet). - [25]
3JBUMW3Eforgot to commit a file - [26]
EFWN7JBV* Added a status page that shows all the currently executing build steps. - [27]
NVEFBXAMhydra: order machines by enabled/disabled, add green and red color for enabled/disabled - [28]
IK2KI6KZAdd create-user action that was mostly present already. - [29]
QT4FO2HPrefactored admin controller, using chains, to avoid using requireadmin on each endpoint - [30]
TRDGNILTRemove unused file - [31]
KXGOUX7P* Creating releases. - [32]
SMCOU72Fhydra: add some admin for adding/enabling/etc build machines - [33]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [34]
U4TD3AIQAdd support for viewing jobset evaluations - [35]
PZL3SZM3Give every page a consistent title - [36]
ZWCTAZGLadded newsitems, added some admin options to clear various caches. - [*]
J5UVLXOK* Start of a basic Catalyst web interface. - [*]
FPK5LF53* Put the project-related actions in a separate controller. Put the
Change contents
- edit in src/lib/Hydra/Controller/Admin.pm at line 55[3.7]→[3.65:142](∅→∅),[3.240]→[3.65:142](∅→∅),[3.142]→[3.912:981](∅→∅),[3.981]→[3.28:40](∅→∅),[3.40]→[3.0:51](∅→∅),[3.994]→[3.0:51](∅→∅),[3.51]→[3.1027:1320](∅→∅),[3.1027]→[3.1027:1320](∅→∅),[3.1320]→[3.487:626](∅→∅),[3.125]→[3.1472:1487](∅→∅),[3.626]→[3.1472:1487](∅→∅),[3.1472]→[3.1472:1487](∅→∅),[3.142]→[3.240:280](∅→∅),[3.1487]→[3.240:280](∅→∅),[3.240]→[3.240:280](∅→∅),[3.280]→[3.8:11](∅→∅),[3.11]→[3.126:127](∅→∅),[3.1491]→[3.126:127](∅→∅)
sub index : Chained('admin') PathPart('') Args(0) {my ($self, $c) = @_;$c->stash->{machines} = [$c->model('DB::BuildMachines')->search({},{ order_by => ["enabled DESC", "hostname"], '+select' => ["(select bs.stoptime from buildsteps as bs where bs.machine = (me.username || '\@' || me.hostname) and not bs.stoptime is null order by bs.stoptime desc limit 1)"], '+as' => ['idle']})];$c->stash->{steps} = [ $c->model('DB::BuildSteps')->search({ finished => 0, 'me.busy' => 1, 'build.busy' => 1, },{ join => [ 'build' ], order_by => [ 'machine', 'stepnr' ]} ) ];$c->stash->{template} = 'admin.tt';} - edit in src/lib/Hydra/Controller/Admin.pm at line 103
- edit in src/lib/Hydra/Controller/Admin.pm at line 105
- edit in src/lib/Hydra/Controller/Root.pm at line 105[3.650][39.9461]
sub machines :Local Args(0) {my ($self, $c) = @_;$c->stash->{machines} = [$c->model('DB::BuildMachines')->search({},{ order_by => ["enabled DESC", "hostname"], '+select' => ["(select bs.stoptime from buildsteps as bs where bs.machine = (me.username || '\@' || me.hostname) and not bs.stoptime is null order by bs.stoptime desc limit 1)"], '+as' => ['idle']})];$c->stash->{steps} = [ $c->model('DB::BuildSteps')->search({ finished => 0, 'me.busy' => 1, 'build.busy' => 1, },{ join => [ 'build' ], order_by => [ 'machine', 'stepnr' ]} ) ];$c->stash->{template} = 'machine-status.tt';} - replacement in src/root/all.tt at line 1
[% WRAPPER layout.tt title="All builds" _[% WRAPPER layout.tt title="Recent builds" _ - file move: admin.tt → machine-status.tt
- edit in src/root/machines.tt at line 38
<p>Resulting <tt>/etc/nix.machines</tt> [% IF nixMachinesWritable == 0 %](note: file is not writable!)[% END%]:</p><pre>[% nixMachines %]</pre> - replacement in src/root/topbar.tt at line 34
uri = c.uri_for(c.controller(Root).action_for('status'))uri = c.uri_for(c.controller('Root').action_for('status')) - replacement in src/root/topbar.tt at line 37
uri = c.uri_for(c.controller('Admin').action_for('index'))uri = c.uri_for(c.controller('Root').action_for('machines'))