Fix a huge performance regression in the jobstatus page
[?]
Nov 29, 2011, 6:55 PM
J7EE2XZAB5EZICAZGZ6DKM4JDMH73A5AJIW6INYMWJHENIGVANQACDependencies
- [2]
AH2YD57S* More database hackery. - [3]
3EGKZC3Chydra: in jobstatus pages, allow maintainer query argument to show only the packages you are maintaining - [4]
FN6V3C7Malways show latest 10 builds on job page - [5]
JXPHAZMVMinor style changes - [6]
T6KISLR6Fix indentation - [7]
PCZHB5JU* Remove trailing whitespace. - [8]
XHK7IGYI* hdyra: show last succeeded build and changes since on build status summary if build has failed - [9]
3HZY24CX* Make jobsets viewable under - [10]
S6OISBQ3* Mark the "current" builds in a jobset, i.e. those corresponding to - [11]
2PEN43XFHydra/40: Last 5 builds on job page incorrect - [12]
AVOPQAF7* Make the "all" page faster by not doing four identical `select - [13]
HUH62VDLshow current builds on job page - [14]
CVWQXYKMuse newer icons consistently - [15]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [16]
SJN2QPWH* Big speed-up of the job status page and the channel generation (such - [17]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [18]
RH2BAJ6Kfix annoying behaviour in webkit browsers when middle-clicking (open in new tab) on a build, it used to open the build both in new tab as current tab - [19]
JLDUSNUO* Unify rendering of finished and scheduled builds. - [20]
BTUDUY6F* Provide some redirects to the latest successful build for a job (or - [21]
FPK5LF53* Put the project-related actions in a separate controller. Put the - [22]
T2232OBS* Add some DB indices to make the /releases page much faster. - [23]
777XFGVYHydra/22: on job page, 'finished builds' shows nothing for old (non-current) jobs - [24]
RAKTHYAI* In the job status and error pages, show when the status of a job - [25]
4S4ZMFJK* Links on trs. - [26]
AKAXJDMW* Disable the statistics on the project, jobset and job pages for now - [*]
DEMSSSB2* Controller for jobs which inherits all actions in ListBuilds. So - [*]
IK53RV4V
Change contents
- replacement in src/lib/Hydra/Base/Controller/ListBuilds.pm at line 19
{ '+select' => ["me.statusChangeId", "me.statusChangeTime"], '+as' => ["statusChangeId", "statusChangeTime"]{ '+select' => ["me.statusChangeId", "me.statusChangeTime", "resultInfo.buildStatus"], '+as' => ["statusChangeId", "statusChangeTime", "buildStatus"] - replacement in src/lib/Hydra/Base/Controller/ListBuilds.pm at line 67
$c->stash->{builds} = [joinWithResultInfo($c, $c->stash->{allBuilds})->search($c->stash->{builds} = [ joinWithResultInfo($c, $c->stash->{allBuilds})->search( - replacement in src/lib/Hydra/Base/Controller/ListBuilds.pm at line 69
{ order_by => "timestamp DESC"{ '+select' => ["resultInfo.buildStatus"], '+as' => ["buildStatus"], order_by => "timestamp DESC" - replacement in src/lib/Hydra/Base/Controller/ListBuilds.pm at line 73
, page => $page })];, page => $page }) ]; - replacement in src/lib/Hydra/Controller/Job.pm at line 28
$c->stash->{currentBuilds} = [$c->stash->{job}->builds->search({iscurrent => 1}, { join => 'resultInfo', '+select' => ["resultInfo.releasename", "resultInfo.buildstatus"], '+as' => ["releasename", "buildstatus"], order_by => 'system' })];$c->stash->{currentBuilds} = [$c->stash->{job}->builds->search({iscurrent => 1}, { join => 'resultInfo', '+select' => ["resultInfo.releasename", "resultInfo.buildStatus"], '+as' => ["releasename", "buildStatus"], order_by => 'system' })]; - replacement in src/lib/Hydra/Controller/Job.pm at line 31
$c->stash->{lastBuilds} = [$c->stash->{job}->builds->search({ finished => 1 }, { join => 'resultInfo', '+select' => ["resultInfo.releasename", "resultInfo.buildstatus"], '+as' => ["releasename", "buildstatus"], order_by => 'timestamp DESC', rows => 10 })];$c->stash->{lastBuilds} =[ $c->stash->{job}->builds->search({ finished => 1 },{ join => 'resultInfo',, '+select' => ["resultInfo.releasename", "resultInfo.buildStatus"], '+as' => ["releasename", "buildStatus"], order_by => 'timestamp DESC', rows => 10}) ]; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 85
[ joinWithResultInfo($c, $tmp)->search({ finished => 1 }, { order_by => "timestamp DESC", rows => 5 }) ];[ joinWithResultInfo($c, $tmp)->search({ finished => 1 },{ order_by => "timestamp DESC", rows => 5, '+select' => ["resultInfo.buildStatus"], '+as' => ["buildStatus"]}) ]; - replacement in src/root/common.tt at line 103
[% INCLUDE renderBuildStatusIcon size=16 %][% INCLUDE renderBuildStatusIcon size=16 busy=(showSchedulingInfo ? 1 : 0) buildstatus=build.get_column('buildStatus') %] - replacement in src/root/common.tt at line 206
[% BLOCK renderBuildStatusIcon; %][% finished = build != undef ? build.finished : 1 %][% busy = build != undef ? build.schedulingInfo.busy : 0 %][% BLOCK renderBuildStatusIcon %][% finished = build != undef ? build.finished : 1 %][% busy = busy != undef ? busy : build.schedulingInfo.busy %] - replacement in src/root/common.tt at line 233
[% BLOCK renderStatus; %][% BLOCK renderStatus %] - edit in src/root/common.tt at line 235
[% INCLUDE renderBuildStatusIcon size=16 %] - edit in src/root/common.tt at line 237
[% INCLUDE renderBuildStatusIcon size=16 %] - edit in src/root/common.tt at line 239
[% INCLUDE renderBuildStatusIcon size=16 %] - edit in src/root/common.tt at line 241
[% INCLUDE renderBuildStatusIcon size=16 %] - edit in src/root/common.tt at line 243
[% INCLUDE renderBuildStatusIcon size=16 %] - edit in src/root/common.tt at line 245
[% INCLUDE renderBuildStatusIcon size=16 %] - edit in src/root/common.tt at line 249
[% INCLUDE renderBuildStatusIcon size=16 %] - edit in src/root/common.tt at line 251
[% INCLUDE renderBuildStatusIcon size=16 %]