[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 3/4] ts-logs-capture: Break out guest listing and do it earlier
Break out the function find_guests from what was fetch_logs_host_guests, and have it save its results in the @guests global. We do this soon because in the next patch we are going to want to do something to each guest before we call serial_fetch_logs. The loop containing fetch_logs_guest is now in the main program. Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- ts-logs-capture | 60 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/ts-logs-capture b/ts-logs-capture index 13795e8..7127675 100755 --- a/ts-logs-capture +++ b/ts-logs-capture @@ -33,6 +33,34 @@ our ($whhost) = @ARGV; $whhost ||= 'host'; our $ho= selecthost($whhost); +our @guests; + +sub find_guests () { + my $sth= $dbh_tests->prepare(<<END); + SELECT name FROM runvars WHERE flight=? AND job=? + AND name LIKE '%_domname' + ORDER BY name +END + $sth->execute($flight, $job); + my $row; + while ($row= $sth->fetchrow_hashref) { + my $gn= $row->{name}; + $gn =~ s/_domname$//; + + my $gho= selectguest($gn,$ho); + if (!eval { + guest_find_domid($ho,$gho); + 1; + }) { + logm("cannot find domid: $@");; + next; + } + + push @guests, $gho; + } + $sth->finish(); +} + sub try_fetch_logs ($$) { my ($lho, $logfilepats) = @_; my $ok= 0; @@ -97,7 +125,7 @@ sub try_cmd_output_save ($;$) { close $fh or die $!; } -sub fetch_logs_host_guests () { +sub fetch_logs_host () { my $logs= [qw( /var/log/kern.log* /var/log/syslog* @@ -173,33 +201,13 @@ sub fetch_logs_host_guests () { ) { try_cmd_output_save($cmd); } - - my $sth= $dbh_tests->prepare(<<END); - SELECT name FROM runvars WHERE flight=? AND job=? - AND name LIKE '%_domname' - ORDER BY name -END - $sth->execute($flight, $job); - my $row; - while ($row= $sth->fetchrow_hashref) { - my $gn= $row->{name}; - $gn =~ s/_domname$//; - fetch_logs_guest($gn); - } - $sth->finish(); } sub fetch_logs_guest ($) { - my ($gn) = @_; + my ($gho) = @_; + my $gn = $gho->{Name}; logm("saving logs for $gn"); - my $gho= selectguest($gn,$ho); - if (!eval { - guest_find_domid($ho,$gho); - 1; - }) { - logm("cannot find domid: $@"); - return; - } + my $consolecmd= toolstack($ho)->consolecmd($gho); try_cmd_output_save("sleep 1 | $consolecmd | cat", "guest-$gho->{Name}-console"); @@ -226,6 +234,8 @@ sub fetch_logs_guest ($) { } } +find_guests(); serial_fetch_logs($ho); -fetch_logs_host_guests(); +fetch_logs_host(); +fetch_logs_guest($_) foreach @guests; logm("logs captured to $stash"); -- 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 |