* Job status: show the active jobs.
[?]
Mar 13, 2009, 5:32 PM
RI4S7SYT3QKWCR2OBQ3RGVHWHRBGB6PKIEVGZYITV3FF6PF3CT6QCDependencies
- [2]
S5PV6IIM* Represent jobs explicitly in the DB. - [3]
UWVMQIAC* Refactoring. - [4]
M552HLIA* Support variant builds. - [5]
3E6IP3R3* Add the name of the jobset to ReleaseSetJobs, otherwise we can't - [6]
SHZLOM5M* eval-jobs -> hydra_eval_jobs. - [7]
FPK5LF53* Put the project-related actions in a separate controller. Put the - [8]
7UJ5YV4V* Provide a channel for each project containing all the latest - [9]
LBNVQXUB* Build the /build stuff in a separate controller. - [10]
DEMSSSB2* Controller for jobs which inherits all actions in ListBuilds. So - [11]
3HZY24CX* Make jobsets viewable under - [12]
AKAZKCR6* At top-level and for each project, provide two channels: "latest" - [*]
J5UVLXOK* Start of a basic Catalyst web interface. - [*]
N22GPKYT* Put info about logs / build products in the DB.
Change contents
- replacement in src/lib/Hydra/Base/Controller/ListBuilds.pm at line 13
$c->stash->{latestBuilds} = getLatestBuilds($c, $c->stash->{allBuilds}, {});my $jobs = $c->stash->{allJobs};$c->stash->{latestBuilds} =getLatestBuilds($c, ref $jobs eq "ARRAY" ? $jobs : scalar $jobs->search({active => 1}), {}); - replacement in src/lib/Hydra/Base/Controller/ListBuilds.pm at line 46
getChannelData($c, getLatestBuilds($c, $c->stash->{allBuilds}, {buildStatus => 0}));getChannelData($c, getLatestBuilds($c, scalar $c->stash->{allJobs}->search({active => 1}), {buildStatus => 0})); - edit in src/lib/Hydra/Controller/Job.pm at line 30
#$c->stash->{allJobs} = # !!! horribly hacky# $c->stash->{job}->jobset->jobs->search({name => $c->stash->{job}->name});$c->stash->{allJobs} = [$c->stash->{job}]; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 32
$c->stash->{allBuilds} =$c->stash->{jobset}->builds;$c->stash->{allBuilds} = $c->stash->{jobset}->builds;$c->stash->{allJobs} = $c->stash->{jobset}->jobs; - edit in src/lib/Hydra/Controller/Project.pm at line 228
$c->stash->{allJobs} = $c->stash->{project}->jobs; - edit in src/lib/Hydra/Controller/Root.pm at line 226
$c->stash->{allJobs} = $c->model('DB::Jobs'); - replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 48
my ($c, $builds, $extraAttrs) = @_;my ($c, $jobs, $extraAttrs) = @_; - replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 52[4.10585]→[4.81:177](∅→∅),[4.177]→[4.10684:10710](∅→∅),[4.10684]→[4.10684:10710](∅→∅),[4.10710]→[4.178:233](∅→∅),[4.233]→[2.0:47](∅→∅),[2.47]→[4.266:305](∅→∅),[4.266]→[4.266:305](∅→∅),[4.305]→[4.10841:11075](∅→∅),[4.10841]→[4.10841:11075](∅→∅)
foreach my $build ($builds->search({},{group_by => ['project', 'job', 'system']})){my $attrs ={ project => $build->get_column('project'), job => $build->get_column('job'), system => $build->system, finished => 1};my ($build) = $builds->search({ %$attrs, %$extraAttrs },{ join => 'resultInfo', order_by => 'timestamp DESC', rows => 1 } );push @res, $build if defined $build;# !!! this could be done more efficiently.foreach my $job (ref $jobs eq "ARRAY" ? @{$jobs} : $jobs->all) {foreach my $system ($job->builds->search({}, {select => ['system'], distinct => 1})) {my ($build) = $job->builds->search({ finished => 1, system => $system->system, %$extraAttrs },{ join => 'resultInfo', order_by => 'timestamp DESC', rows => 1 });push @res, $build if defined $build;} - edit in src/script/hydra_scheduler.pl at line 358
print $jobInDB->name, "\n";