[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 16/25] sg-report-host-history: Break out computeflightsrange
To do database locking coherently, it will be convenient to have this in a function. No functional change. Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- sg-report-host-history | 65 +++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/sg-report-host-history b/sg-report-host-history index 14f8458..c56ed71 100755 --- a/sg-report-host-history +++ b/sg-report-host-history @@ -58,42 +58,44 @@ while (@ARGV && $ARGV[0] =~ m/^-/) { @ARGV or die $!; -$dbh_tests->begin_work; - -if (!$flightlimit) { - my $flagscond = - '('.join(' OR ', map { "f.hostflag = 'blessed-$_'" } @blessings).')'; - my $nhostsq = db_prepare(<<END); - SELECT count(*) - FROM resources r - WHERE restype='host' - AND EXISTS (SELECT 1 - FROM hostflags f - WHERE f.hostname=r.resname - AND $flagscond) +our $flightcond; + +sub computeflightsrange () { + if (!$flightlimit) { + my $flagscond = + '('.join(' OR ', map { "f.hostflag = 'blessed-$_'" } @blessings).')'; + my $nhostsq = db_prepare(<<END); + SELECT count(*) + FROM resources r + WHERE restype='host' + AND EXISTS (SELECT 1 + FROM hostflags f + WHERE f.hostname=r.resname + AND $flagscond) END - $nhostsq->execute(); - my ($nhosts) = $nhostsq->fetchrow_array(); - print DEBUG "COUNTED $nhosts hosts\n"; - $flightlimit = $nhosts * $limit * 2; -} + $nhostsq->execute(); + my ($nhosts) = $nhostsq->fetchrow_array(); + print DEBUG "COUNTED $nhosts hosts\n"; + $flightlimit = $nhosts * $limit * 2; + } -my $minflightsq = db_prepare(<<END); - SELECT flight - FROM ( + my $minflightsq = db_prepare(<<END); SELECT flight - FROM flights - ORDER BY flight DESC - LIMIT $flightlimit - ) f - ORDER BY flight ASC - LIMIT 1 + FROM ( + SELECT flight + FROM flights + ORDER BY flight DESC + LIMIT $flightlimit + ) f + ORDER BY flight ASC + LIMIT 1 END -$minflightsq->execute(); -my ($minflight) = $minflightsq->fetchrow_array(); -$minflight //= 0; + $minflightsq->execute(); + my ($minflight) = $minflightsq->fetchrow_array(); + $minflight //= 0; -our $flightcond = "(flight > $minflight)"; + $flightcond = "(flight > $minflight)"; +} $dbh_tests->do("SET LOCAL enable_seqscan=false"); # Otherwise the PostgreSQL query planner likes to do a complete scan @@ -243,4 +245,5 @@ sub reporthost ($) { rename "$html_file.new", "$html_file" or die "$html_file $!"; } +computeflightsrange(); reporthost $_ foreach @ARGV; -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |