fix raid01 and linear

This commit is contained in:
Jan Wagner 2010-09-23 07:32:42 +00:00
parent d9147433ed
commit a2b26cd594
3 changed files with 57 additions and 4 deletions

13
debian/changelog vendored
View file

@ -1,10 +1,15 @@
nagios-plugins (1.4.15-2) UNRELEASED; urgency=low
nagios-plugins (1.4.15-2) unstable; urgency=low
[ Alexander Wirt ]
* Call ps with two "w" to ensure unlimited width of ps output
(Closes: #596372)
* Call ps with two "w" to ensure unlimited width of ps output
(Closes: #596372)
-- Alexander Wirt <formorer@debian.org> Fri, 10 Sep 2010 22:24:01 +0200
[ Jan Wagner ]
* Add 05_check_linux_raid_fix_striped.dpatch to fix bad output from
check_linux_raid with RAID0 and linear volumes, thanks to Thomas
Guyot-Sionnest (Closes: #579049) - LP: #621380
-- Jan Wagner <waja@cyconet.org> Thu, 23 Sep 2010 09:24:39 +0200
nagios-plugins (1.4.15-1) unstable; urgency=low

View file

@ -1,3 +1,4 @@
01_subst.in.dpatch
02_check_icmp_links.dpatch
05_check_linux_raid_fix_striped.dpatch
# commited upstream

View file

@ -0,0 +1,47 @@
#! /bin/sh /usr/share/dpatch/dpatch-run
## 05_check_linux_raid_fix_striped.dpatch by Thomas Guyot-Sionnest <dermoth@aei.ca>
##
## DP: Fix RAID0 and linear volumes (http://bugs.debian.org/579049)
## DP: Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/nagios-plugins/+bug/621380
## DP: Upstream bug is: http://sourceforge.net/tracker/?func=detail&aid=3049988&group_id=29880&atid=397597
@DPATCH@
diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' nagios-plugins-1.4.15~/contrib/check_linux_raid.pl nagios-plugins-1.4.15/contrib/check_linux_raid.pl
--- nagios-plugins-1.4.15~/contrib/check_linux_raid.pl 2010-07-27 22:47:15.000000000 +0200
+++ nagios-plugins-1.4.15/contrib/check_linux_raid.pl 2010-09-23 09:00:11.000000000 +0200
@@ -71,7 +71,8 @@
} elsif (/^($nextdev)\s*:/) {
$device=$1;
$devices{$device}=$device;
- if (/active/) {
+ if (/\sactive/) {
+ $status{$device} = ''; # Shall be filled later if available
$active{$device} = 1;
}
}
@@ -80,7 +81,11 @@
}
foreach my $k (sort keys %devices){
- if ($status{$k} =~ /_/) {
+ if (!exists($status{$k})) {
+ $msg .= sprintf " %s inactive with no status information.",
+ $devices{$k};
+ $code = max_state($code, "CRITICAL");
+ } elsif ($status{$k} =~ /_/) {
if (defined $recovery{$k}) {
$msg .= sprintf " %s status=%s, recovery=%s, finish=%s.",
$devices{$k}, $status{$k}, $recovery{$k}, $finish{$k};
@@ -94,10 +99,11 @@
$code = max_state($code, "OK");
} else {
if ($active{$k}) {
- $msg .= sprintf " %s active with no status information.\n",
+ $msg .= sprintf " %s active with no status information.",
$devices{$k};
$code = max_state($code, "OK");
} else {
+ # This should't run anymore, but is left as a catch-all
$msg .= sprintf " %s does not exist.\n", $devices{$k};
$code = max_state($code, "CRITICAL");
}