# HG changeset patch # User Heiko Schlittermann (JUMPER) # Date 1427785879 -7200 # Node ID 6b3eca8f7c0ae7181710896cc7999fbd2fc5ab3f # Parent 464fb46c0b7db5d3ee3964766582f74c4e1a86c2 Backed out changeset 464fb46c0b7d diff -r 464fb46c0b7d -r 6b3eca8f7c0a check_release.pl --- a/check_release.pl Tue Mar 31 09:07:18 2015 +0200 +++ b/check_release.pl Tue Mar 31 09:11:19 2015 +0200 @@ -32,7 +32,7 @@ DEPENDENT => 4 ); -sub get_local_release; +sub get_current_release($); sub get_stable_release($$); sub report($$); sub version($$); @@ -42,7 +42,7 @@ my %opt = ( url => "http://www.debian.org/releases/stable/index.html", - search => qr/

Debian\b.*?([\d.]+)/, + search => "

Debian", file => "/etc/debian_version", ok => 0 ); @@ -59,66 +59,80 @@ "V|version" => sub { version($ME, $VERSION); exit $ERRORS{OK}; } ) or pod2usage(-verbose => 1, -exitval => $ERRORS{CRITICAL}); - my ($local_release, $stable_release) = eval { - get_local_release($opt{file}), - get_stable_release($opt{url}, $opt{search}); - }; - if ($@) { - print "RELEASE CRITICAL: $@\n"; - exit $ERRORS{CRITICAL}; - } - report($local_release, $stable_release); + my $current_release = get_current_release($opt{file}); + my $stable_release = get_stable_release($opt{url}, $opt{search}); + report($current_release, $stable_release); } -sub get_local_release { +sub get_current_release($) { + my $file = shift; + my $current_release = undef; - my $local_release = do { - local @ARGV = grep { -r } @_ - or die "@_: $!\n"; - <>; - }; + unless (-r $file) { + print +"RELEASE CRITICAL: $file not exists or not read permission is granted\n"; + exit $ERRORS{CRITICAL}; + } - chomp $local_release; - return $local_release; + open(CR, "<$file"); + while () { + chomp; + $current_release = $_; + } + close(CR); + + return $current_release; } sub get_stable_release($$) { my ($url, $search) = @_; + my ($found, $stable_release) = undef; my $website; + my @website = (); - $website = get($url) - or die "Failed to get $url\n"; + $website = get($url); + unless (defined $website) { + print +"RELEASE CRITICAL: failed to get $url\n"; + exit $ERRORS{CRITICAL}; + } - $website =~ /$opt{search}/s - or die "an't parse $url\n"; + push @website, split("\n", $website); - return $1; -} + foreach (@website) { + unless ($found) { + /$search/ or next; + $found = $_; + next; + } + } -sub compare_versions { - my ($left, $right) = @_; - my @left = split '.', $left; - my @right = split '.', $right; + if ($found =~ /$opt{search}\s+([\d\.]+).*/) { + $stable_release = $1; + } + return $stable_release; } sub report($$) { - my ($local_release, $stable_release) = @_; - my ($local_major, $stable_major) = map { int } $local_release, $stable_release; + my ($current_release, $stable_release) = @_; + - die "<$local_major | $stable_major>"; - - if ($opt{ok} or $local_release eq $stable_release) { - print "RELEASE OK: $local_release/$stable_release\n"; + if ($opt{ok} or $current_release eq $stable_release) { + print "RELEASE OK: $current_release/$stable_release\n"; exit $ERRORS{OK}; } + $stable_release =~ /^(\d+)/ and my $stable_major = int($1); + $current_release =~ /^(\d+)/ and my $current_major = int($1); + + if ($current_major - $stable_major < -1) { - print "RELEASE CRITICAL: $local_release / $stable_release\n"; + print "RELEASE CRITICAL: $current_release / $stable_release\n"; exit $ERRORS{CRITICAL}; } - print "RELEASE WARNING: $local_release / $stable_release\n"; + print "RELEASE WARNING: $current_release / $stable_release\n"; exit $ERRORS{"WARNING"}; } diff -r 464fb46c0b7d -r 6b3eca8f7c0a debian/changelog --- a/debian/changelog Tue Mar 31 09:07:18 2015 +0200 +++ b/debian/changelog Tue Mar 31 09:11:19 2015 +0200 @@ -1,10 +1,3 @@ -nagios-plugin-release (2.8) oldstable stable; urgency=medium - - * removed dependency on perl-doc - * changed maintainer - - -- Heiko Schlittermann (HS12-RIPE) Tue, 31 Mar 2015 09:07:10 +0200 - nagios-plugin-release (2.7) oldstable stable; urgency=medium * fixed compression type: diff -r 464fb46c0b7d -r 6b3eca8f7c0a debian/control --- a/debian/control Tue Mar 31 09:07:18 2015 +0200 +++ b/debian/control Tue Mar 31 09:11:19 2015 +0200 @@ -1,12 +1,12 @@ Source: nagios-plugin-release Section: net Priority: extra -Maintainer: Heiko Schlittermann (HS12-RIPE) +Maintainer: Christian Arnold Build-Depends: debhelper (>= 7), libwww-perl Standards-Version: 3.9.1 Package: nagios-plugin-release Architecture: all -Depends: ${misc:Depends}, ${perl:Depends}, libwww-perl +Depends: ${misc:Depends}, ${perl:Depends}, perl-doc, libwww-perl Description: nagios plugin to check current debian release number This plugin checks the current debian release number.