diff options
author | Petter Reinholdtsen <pere@hungry.com> | 2007-11-23 20:03:25 +0000 |
---|---|---|
committer | Petter Reinholdtsen <pere@hungry.com> | 2007-11-23 20:03:25 +0000 |
commit | 00b996c068fe17ff4c2271e44d91bd1a92f6aa76 (patch) | |
tree | b4d48905ff6776e2b7936f9d0bb57b3d4654e949 /kernelversion-summary | |
parent | ac842568a1885d0b8c52cfc07f779d92be4e0cb2 (diff) | |
download | sitesummary-00b996c068fe17ff4c2271e44d91bd1a92f6aa76.tar.gz sitesummary-00b996c068fe17ff4c2271e44d91bd1a92f6aa76.tar.bz2 sitesummary-00b996c068fe17ff4c2271e44d91bd1a92f6aa76.tar.xz |
* Add -l option to kernelversion-summary, to get it to list the
individual hosts with the given kernel version.
Diffstat (limited to 'kernelversion-summary')
-rwxr-xr-x | kernelversion-summary | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/kernelversion-summary b/kernelversion-summary index 0298004..a80b936 100755 --- a/kernelversion-summary +++ b/kernelversion-summary @@ -4,8 +4,21 @@ use strict; use warnings; use SiteSummary; +use Getopt::Std; my %kernelvers; +my %opts; + +sub usage { + my $retval = shift; + print <<EOF; +Usage: $0 [-l] + -l list hosts using the given kernel versions +EOF + exit $retval; +} + +getopt("l", \%opts) || usage(1); for_all_hosts(\&handle_host); @@ -15,14 +28,26 @@ sub handle_host { my $hostid = shift; #print "$hostid\n"; for my $kver (get_linux_kernel_ver($hostid)) { - $kver = "" unless defined $kver; - $kernelvers{$kver}++; + $kver = "" unless defined $kver; + if (exists $kernelvers{$kver}) { + push @{$kernelvers{$kver}}, $hostid ; + } else { + $kernelvers{$kver} = [$hostid]; + } } } sub print_summary { printf(" %-20s %5s\n", "kernel", "count"); for my $kver (sort keys %kernelvers) { - printf(" %-20s %5d\n", $kver, $kernelvers{$kver}); + printf(" %-20s %5d\n", $kver, scalar @{$kernelvers{$kver}}); + if (exists $opts{l}) { + for my $hostid (@{$kernelvers{$kver}}) { + my $hostname = get_hostname($hostid); + my $site = get_site($hostid) || ""; + my $sitegroup = get_sitegroup($hostid) || ""; + printf " %s %s/%s %s\n", $hostname, $site, $sitegroup, $hostid; + } + } } } |