[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [OSSTEST PATCH 07/24] cs-hosts-list: Support --arches and --kernels



Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
 cs-hosts-list | 41 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/cs-hosts-list b/cs-hosts-list
index 1fea3cd..92f44ee 100755
--- a/cs-hosts-list
+++ b/cs-hosts-list
@@ -29,9 +29,25 @@ use Osstest;
 
 csreadconfig();
 
+our @kernels = qw(xen linux);
+our @arches;
+
+while (@ARGV && $ARGV[0] =~ m/^-/) {
+    $_ = shift @ARGV;
+    last if m/^--$/;
+    while (m/^-./) {
+       if (s/^--arches=(.*)/-/) {
+           @arches = split /\,/, $1;
+       } elsif (s/^--kernels=(.*)/-/) {
+           @kernels = split /\,/, $1;
+       } else {
+           die "bad option $_ ?";
+       }
+    }
+}
+
 @ARGV == 1 or die $!;
 my ($flags) = @ARGV;
-$flags =~ m/^-/ and die $!;
 
 my @qargs;
 my $qtxt= <<END;
@@ -49,13 +65,36 @@ END
 }
 
 my $q= $dbh_tests->prepare($qtxt);
+
+my $flagq = $dbh_tests->prepare(<<END);
+        SELECT 1
+          FROM hostflags
+         WHERE hostname=? AND hostflag=?
+END
+
 my $o;
 
+sub report_arch ($) {
+    my ($host) = @_;
+    foreach my $kernel (@kernels) {
+       my $kernprefix = $kernel eq 'linux' ? '' : "$kernel-";
+       foreach my $arch (@arches) {
+           $flagq->execute($host,"arch-$kernprefix$arch");
+           if ($flagq->fetchrow_arrayref()) {
+               $o .= " $kernel $arch";
+               return;
+           }
+       }
+    }
+    $o .= " NONE NONE";
+}
+
 db_retry($dbh_tests,[],sub {
     $o='';
     $q->execute(@qargs);
     while (my ($host) = $q->fetchrow_array()) {
        $o .= $host;
+       report_arch($host) if @arches;
        $o .= "\n";
     }
 });
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.