[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [OSSTEST PATCH 2/2] sg-report-job-history: Show which host test ran on
On Mon, 2015-02-09 at 18:07 +0000, Ian Jackson wrote: > Add a column Did you mean row? (looks to be in the HTML, as opposed to the email) > listing the host(s) used. We first find the relevant set > of host runvars (with a SELECT DISTINCT) and then look up each var for > each actual flight. > > We do the pattern-matching on runvar names in perl to avoid giving the > postgresql optimiser a chance to turn this query into a full table > scan of the runvars table. (A previous iteration of this patch > searched, in the per-flight loop, for all runvars whose name was > appropriately LIKE, with appalling performance.) > > Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> > --- > sg-report-job-history | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/sg-report-job-history b/sg-report-job-history > index 479e347..3e4b0ef 100755 > --- a/sg-report-job-history > +++ b/sg-report-job-history > @@ -172,9 +172,34 @@ END > END > $flightsq->execute(@params); > > + my $hostsq= $dbh_tests->prepare(<<END); > + SELECT DISTINCT name > + FROM runvars > + JOIN flights USING (flight) > + WHERE ($cond) > + ORDER BY name; > +END > + $hostsq->execute(@params); > + my @hostvarcols; > + while (my ($hostvar) = $hostsq->fetchrow_array()) { > + next unless $hostvar =~ m/(^|_)host$/; > + push @hostvarcols, $hostvar; > + } > + > + my $hostq= $dbh_tests->prepare(<<END); > + SELECT val FROM runvars WHERE flight=? AND job=? AND name=? > +END > + > while (my $f= $flightsq->fetchrow_hashref()) { > my $ri= run_getinfo($f); > > + $ri->{Hosts} = [ ]; > + foreach my $hostvar (@hostvarcols) { > + $hostq->execute($f->{flight}, $f->{job}, $hostvar); > + my ($host) = $hostq->fetchrow_array(); > + push @{ $ri->{Hosts} }, ($host // "-"); > + } > + > my %revisions; > add_revisions(\%revisions, $f->{flight}, $f->{job}, ''); > > @@ -217,6 +242,7 @@ END > print H "<h1>$title</h1>\n"; > print H "<table rules=all>"; > print H "<tr><th>flight</th><th>branch</th><th>failure</th>\n"; > + print H "<th>", (join ", ", @hostvarcols), "</th>\n"; > foreach my $c (@rev_grid_cols) { > print H "<th>".encode_entities($c)."</th>\n"; > } > @@ -236,6 +262,8 @@ END > print H "<td $colour><a href=\"$url\">". > encode_entities($r->{Summary})."</a></td>\n"; > my $lastrev; > + my $hosts = join ", ", map { $_ // "-" } @{ $r->{Hosts} }; > + print H "<td>".encode_entities($hosts)."</td>\n"; > foreach my $i (0..$#rev_grid_cols) { > my $v= $r->{Revisions}[$i]; > my $same= _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |