diff options
author | Petter Reinholdtsen <pere@hungry.com> | 2008-07-25 17:29:44 +0000 |
---|---|---|
committer | Petter Reinholdtsen <pere@hungry.com> | 2008-07-25 17:29:44 +0000 |
commit | 87aa92808aaf76340c00577657e15b588b9618c8 (patch) | |
tree | bf8f0c38abcff1007a4c8b7ec3264e9d5f4a1f3d /hardware-model-summary | |
parent | 7475f92516def93743800968da3baf8ddc475b2f (diff) | |
download | sitesummary-87aa92808aaf76340c00577657e15b588b9618c8.tar.gz sitesummary-87aa92808aaf76340c00577657e15b588b9618c8.tar.bz2 sitesummary-87aa92808aaf76340c00577657e15b588b9618c8.tar.xz |
Use old name standard for new hardware symmary script.
Diffstat (limited to 'hardware-model-summary')
-rwxr-xr-x | hardware-model-summary | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/hardware-model-summary b/hardware-model-summary new file mode 100755 index 0000000..ebdc390 --- /dev/null +++ b/hardware-model-summary @@ -0,0 +1,78 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use SiteSummary; +use Getopt::Std; + +my %vendors; +my %models; +my %hostmap; +my %modelmap; +my %opts; + +sub usage { + my $retval = shift; + print <<EOF; +Usage: $0 [-l] + -l list hosts with the given vendor/model +EOF + exit $retval; +} + +getopt("l", \%opts) || usage(1); + +for_all_hosts(\&handle_host); + +print_summary(); + +sub handle_host { + my $hostid = shift; + #print "$hostid\n"; + my ($vendor, $model, undef) = get_hardware_info($hostid); + $vendor = "[unknown]" unless defined $vendor; + $vendors{$vendor}++; + if ($model) { + $models{$vendor}{$model}++; + if (exists $modelmap{$vendor} && exists $modelmap{$vendor}{$model}) { + push @{$modelmap{$vendor}{$model}}, $hostid ; + } else { + $modelmap{$vendor}{$model} = [$hostid]; + } + } else { + if (exists $hostmap{$vendor}) { + push @{$hostmap{$vendor}}, $hostid ; + } else { + $hostmap{$vendor} = [$hostid]; + } + } +} + +sub print_summary { + printf(" %-25s %5s\n", "vendor", "count"); + for my $vendor (sort keys %vendors) { + printf(" %-25s %5d\n", $vendor, $vendors{$vendor}); + if (exists $opts{l}) { + if (exists $hostmap{$vendor}) { + for my $hostid (sort @{$hostmap{$vendor}}) { + my $hostname = get_hostname($hostid); + my ($vendor, $model, undef) = get_hardware_info($hostid); + $vendor = "[unknown]" unless defined $vendor; + $model = "" unless defined $model; + printf " %s %s/%s %s\n", $hostname, $vendor, $model, $hostid; + } + } + } + for my $model (sort keys %{$models{$vendor}}) { + printf(" %-23s %5d\n", $model, $models{$vendor}{$model}); + if (exists $opts{l}) { + for my $hostid (sort @{$modelmap{$vendor}{$model}}) { + my $hostname = get_hostname($hostid); + my ($vendor, $model, undef) = get_hardware_info($hostid); + printf " %s %s/%s %s\n", $hostname, $vendor, $model, $hostid; + } + } + } + } +} |