Ensure that each eval is compared to the previous one from the same jobset
[?]
Feb 26, 2013, 6:08 PM
U5ZWDBW3XRWDWMMPSSXEZ3DT47FPX5WH74AZ4URVQHHAD7ZOB46ACDependencies
- [2]
VH5ZABDRAdd a page to show the latest evaluations for the entire server - [3]
PMNWRTGJAdd multiple output support - [*]
2GK5DOU7* Downloading closures.
Change contents
- edit in src/lib/Hydra/Helper/Nix.pm at line 288
}sub getEvalInputs {my ($c, $eval) = @_;my @inputs = $eval->jobsetevalinputs->search({ -or => [ -and => [ uri => { '!=' => undef }, revision => { '!=' => undef }], dependency => { '!=' => undef }], altNr => 0 },{ order_by => "name" });}sub getEvalInfo {my ($cache, $eval) = @_;my $res = $cache->{$eval->id}; return $res if defined $res;# Get stats for this eval.my $nrScheduled;my $nrSucceeded = $eval->nrsucceeded;if (defined $nrSucceeded) {$nrScheduled = 0;} else {$nrScheduled = $eval->builds->search({finished => 0})->count;$nrSucceeded = $eval->builds->search({finished => 1, buildStatus => 0})->count;if ($nrScheduled == 0) {$eval->update({nrsucceeded => $nrSucceeded});}}# Get the inputs.my @inputsList = $eval->jobsetevalinputs->search({ -or => [ -and => [ uri => { '!=' => undef }, revision => { '!=' => undef }], dependency => { '!=' => undef }], altNr => 0 },{ order_by => "name" });my $inputs;$inputs->{$_->name} = $_ foreach @inputsList;return $cache->{$eval->id} ={ nrScheduled => $nrScheduled, nrSucceeded => $nrSucceeded, inputs => $inputs}; - replacement in src/lib/Hydra/Helper/Nix.pm at line 336
{ order_by => "id DESC", rows => $rows + 1, offset => $offset });{ order_by => "id DESC", rows => $rows, offset => $offset }); - replacement in src/lib/Hydra/Helper/Nix.pm at line 339
my $prevInputs = [];my $prev;for (my $n = scalar @evals - 1; $n >= 0; $n--) {my $cur = $evals[$n];my $cache = {};foreach my $curEval (@evals) {my ($prevEval) = $c->model('DB::JobsetEvals')->search({ project => $curEval->get_column('project'), jobset => $curEval->get_column('jobset'), hasnewbuilds => 1, id => { '<', $curEval->id } },{ order_by => "id DESC", rows => 1 }); - replacement in src/lib/Hydra/Helper/Nix.pm at line 348
# Get stats for this eval.my $nrScheduled;my $nrSucceeded = $cur->nrsucceeded;if (defined $nrSucceeded) {$nrScheduled = 0;} else {$nrScheduled = $cur->builds->search({finished => 0})->count;$nrSucceeded = $cur->builds->search({finished => 1, buildStatus => 0})->count;if ($nrScheduled == 0) {$cur->update({nrsucceeded => $nrSucceeded});}}my $curInfo = getEvalInfo($cache, $curEval);my $prevInfo = getEvalInfo($cache, $prevEval) if defined $prevEval; - edit in src/lib/Hydra/Helper/Nix.pm at line 352
my $curInputs = [ $cur->jobsetevalinputs->search({ -or => [ -and => [ uri => { '!=' => undef }, revision => { '!=' => undef }], dependency => { '!=' => undef }], altNr => 0 },{ order_by => "name" }) ]; - replacement in src/lib/Hydra/Helper/Nix.pm at line 353
my %prevInputsHash;$prevInputsHash{$_->name} = $_ foreach @{$prevInputs};foreach my $input (@{$curInputs}) {my $p = $prevInputsHash{$input->name};push @changedInputs, $inputif !defined $p || ($input->revision || "") ne ($p->revision || "") || $input->type ne $p->type || ($input->uri || "") ne ($p->uri || "") ||( defined $input->dependency && defined $p->dependency && $input->dependency->id ne $p->dependency->id);foreach my $input (values %{$curInfo->{inputs}}) {my $p = $prevInfo->{inputs}->{$input->name};push @changedInputs, $input if!defined $p|| ($input->revision || "") ne ($p->revision || "")|| $input->type ne $p->type|| ($input->uri || "") ne ($p->uri || "")|| ($input->get_column('dependency') || "") ne ($p->get_column('dependency') || ""); - edit in src/lib/Hydra/Helper/Nix.pm at line 362
$prevInputs = $curInputs; - replacement in src/lib/Hydra/Helper/Nix.pm at line 363
my $e ={ eval => $cur, nrScheduled => $nrScheduled, nrSucceeded => $nrSucceeded, nrFailed => $cur->nrbuilds - $nrSucceeded - $nrScheduled, diff => defined $prev ? $nrSucceeded - $prev->{nrSucceeded} : 0push @res,{ eval => $curEval, nrScheduled => $curInfo->{nrScheduled}, nrSucceeded => $curInfo->{nrSucceeded}, nrFailed => $curEval->nrbuilds - $curInfo->{nrSucceeded} - $curInfo->{nrScheduled}, diff => defined $prevEval ? $curInfo->{nrSucceeded} - $prevInfo->{nrSucceeded} : 0 - edit in src/lib/Hydra/Helper/Nix.pm at line 371
push @res, $e if $n < $rows;$prev = $e; - replacement in src/lib/Hydra/Helper/Nix.pm at line 373
return [reverse @res];return [@res];