packages: nagios-plugin-check_raid/check_raid - group smartctl device statuses
glen
glen at pld-linux.org
Mon Mar 12 20:56:17 CET 2012
Author: glen Date: Mon Mar 12 19:56:17 2012 GMT
Module: packages Tag: HEAD
---- Log message:
- group smartctl device statuses
---- Files affected:
packages/nagios-plugin-check_raid:
check_raid (1.110 -> 1.111)
---- Diffs:
================================================================
Index: packages/nagios-plugin-check_raid/check_raid
diff -u packages/nagios-plugin-check_raid/check_raid:1.110 packages/nagios-plugin-check_raid/check_raid:1.111
--- packages/nagios-plugin-check_raid/check_raid:1.110 Mon Mar 12 20:48:40 2012
+++ packages/nagios-plugin-check_raid/check_raid Mon Mar 12 20:56:12 2012
@@ -116,6 +116,28 @@
return 1;
}
+# a helper to join similar statuses for items
+# instead of printing
+# 0: OK, 1: OK, 2: OK, 3: NOK, 4: OK
+# it would print
+# 0-2,4: OK, 3: NOK
+# takes as input list:
+# { status => @items }
+sub join_status {
+ my %status = %{$_[0]};
+
+ my @status;
+ while (my($status, $disks) = each %status) {
+ my @s;
+ foreach my $disk (@$disks) {
+ push(@s, $disk);
+ }
+ push(@status, join(',', @s).': '.$status);
+ }
+
+ return join ' ', @status;
+}
+
# Solaris, software RAID
sub check_metastat {
my($d,$sd);
@@ -1123,8 +1145,8 @@
my @CMD = $smartctl;
unshift(@CMD, $sudo) if $> and $sudo;
- # status messages pushed here
- my @status;
+ # status message for devs, latter just joined for shorter messages
+ my %status;
foreach my $ref (@devs) {
my ($dev, $diskopt, $disk) = @$ref;
@@ -1148,16 +1170,16 @@
} elsif ($s !~ '^OK') {
$status = $ERRORS{CRITICAL};
}
- push(@status, $dev.'#'.$disk.': '.$s);
+ push(@{$status{$s}}, $dev.'#'.$disk);
}
}
close($fh);
}
- return unless @status;
+ return unless %status;
$message .= '; ' if $message;
- $message .= "smartctl:[".join(', ', @status)."]";
+ $message .= "smartctl:[".join_status(\%status)."]";
}
sub check_hpacucli {
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/nagios-plugin-check_raid/check_raid?r1=1.110&r2=1.111&f=u
More information about the pld-cvs-commit
mailing list