Implement virt-uptime command.
authorRichard Jones <rjones@trick.home.annexia.org>
Tue, 29 Sep 2009 18:12:24 +0000 (19:12 +0100)
committerRichard Jones <rjones@trick.home.annexia.org>
Tue, 29 Sep 2009 18:12:24 +0000 (19:12 +0100)
.gitignore
tools/Makefile.am
tools/virt-uname.pl

index 38df764..077dd70 100644 (file)
@@ -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
index dd7fdbe..4b8b795 100644 (file)
@@ -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 \
index b1d305b..3ff8d4c 100755 (executable)
@@ -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<virt-uname> 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<virt-ifconfig> 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<virt-uname> displays the system information (kernel version etc) of
+the guest.
 
-C<virt-ifconfig> 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<virt-uptime> 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 = @_;