From: Richard Jones Date: Tue, 29 Sep 2009 18:12:24 +0000 (+0100) Subject: Implement virt-uptime command. X-Git-Url: http://git.annexia.org/?p=virt-tools.git;a=commitdiff_plain;h=f3691aa4f1c48682da967b2f53a32f55e732746e Implement virt-uptime command. --- diff --git a/.gitignore b/.gitignore index 38df764..077dd70 100644 --- a/.gitignore +++ b/.gitignore @@ -12,8 +12,11 @@ missing linux/50-virt-tools localconfigure tools/virt-ifconfig +tools/virt-ping +tools/virt-ps tools/virt-tools-get-key tools/virt-tools-get-transport tools/virt-uname +tools/virt-uptime virt-tools-*.tar.gz virt-tools.spec \ No newline at end of file diff --git a/tools/Makefile.am b/tools/Makefile.am index dd7fdbe..4b8b795 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -31,7 +31,13 @@ bin_SCRIPTS = \ # the value of argv[0] to work out which tool to run. PROGS = \ virt-ping \ - virt-ps + virt-ps \ + virt-uptime + +all-local: + for prog in $(PROGS); do \ + ln -sf virt-uname $$prog; \ + done install-exec-hook: for prog in $(PROGS); do \ diff --git a/tools/virt-uname.pl b/tools/virt-uname.pl index b1d305b..3ff8d4c 100755 --- a/tools/virt-uname.pl +++ b/tools/virt-uname.pl @@ -28,17 +28,19 @@ use Locale::TextDomain 'virt-tools'; =head1 NAME -virt-uname, virt-ps, virt-ping - virtual machine information and statistics +virt-ps, virt-ping, virt-uname, virt-uptime - virtual machine information and statistics =head1 SYNOPSIS - virt-uname [--options] [domname] + virt-ifconfig [--options] [domname] virt-ps [--options] [domname] virt-ping [--options] [domname] - virt-ifconfig [--options] [domname] + virt-uname [--options] [domname] + + virt-uptime [--options] [domname] =head1 COMMON OPTIONS @@ -113,9 +115,10 @@ if ($version) { } my %subcommands = ( - "virt-uname" => [ \&do_uname, \&title_uname ], "virt-ps" => [ \&do_ps, \&title_ps ], "virt-ping" => [ \&do_ping, \&title_ping ], + "virt-uname" => [ \&do_uname, \&title_uname ], + "virt-uptime" => [ \&do_uptime, \&title_uptime ], ); # Which subcommand? @@ -189,31 +192,11 @@ print STDERR "errors = $errors\n" if $verbose; exit ($errors == 0 ? 0 : 1); -=head1 virt-uname - -C displays the system information (kernel version etc) of -the guest. - -=cut - -sub title_uname -{ - print_row (__"Guest", __"System name"); -} +# virt-ifconfig is implemented as a separate program. -sub do_uname -{ - my $domname = shift; - my $key = shift; - my $transport = shift; +=head1 virt-ifconfig - my $session = get_snmp_session ($key, $transport); - my $sysDescr = "1.3.6.1.2.1.1.1.0"; - my $r = $session->get_request (-varbindlist => [$sysDescr]) - or die __x("SNMP error: {e}", $session->error); - print_row ($domname, $r->{$sysDescr}); - $session->close; -} +C displays the IP address of the guest. =head1 virt-ps @@ -259,14 +242,57 @@ sub do_ping } -# virt-ifconfig is implemented separately. +=head1 virt-uname -=head1 virt-ifconfig +C displays the system information (kernel version etc) of +the guest. -C displays the IP address of the guest. +=cut + +sub title_uname +{ + print_row (__"Guest", __"System name"); +} + +sub do_uname +{ + my $domname = shift; + my $key = shift; + my $transport = shift; + + my $session = get_snmp_session ($key, $transport); + my $sysDescr = "1.3.6.1.2.1.1.1.0"; + my $r = $session->get_request (-varbindlist => [$sysDescr]) + or die __x("SNMP error: {e}", $session->error); + print_row ($domname, $r->{$sysDescr}); + $session->close; +} + +=head1 virt-uptime + +C displays the uptime of the guest =cut +sub title_uptime +{ + print_row (__"Guest", __"Uptime"); +} + +sub do_uptime +{ + my $domname = shift; + my $key = shift; + my $transport = shift; + + my $session = get_snmp_session ($key, $transport); + my $sysUpTime = "1.3.6.1.2.1.1.3.0"; + my $r = $session->get_request (-varbindlist => [$sysUpTime]) + or die __x("SNMP error: {e}", $session->error); + print_row ($domname, $r->{$sysUpTime}); + $session->close; +} + sub print_row { my @fields = @_;