SOURCES: check_id-pilet.pl - add verbosity - check for tickets from future

glen glen at pld-linux.org
Wed Jan 7 02:27:38 CET 2009


Author: glen                         Date: Wed Jan  7 01:27:38 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- add verbosity
- check for tickets from future

---- Files affected:
SOURCES:
   check_id-pilet.pl (1.3 -> 1.4) 

---- Diffs:

================================================================
Index: SOURCES/check_id-pilet.pl
diff -u SOURCES/check_id-pilet.pl:1.3 SOURCES/check_id-pilet.pl:1.4
--- SOURCES/check_id-pilet.pl:1.3	Wed Jun 18 08:38:06 2008
+++ SOURCES/check_id-pilet.pl	Wed Jan  7 02:27:32 2009
@@ -5,7 +5,7 @@
 use Nagios::Plugin;
 
 my $PROGNAME = 'check_id-pilet';
-our $VERSION = '0.10';
+our $VERSION = '0.11';
 
 our $p = Nagios::Plugin->new(
 	usage => "Usage: %s [ -v|--verbose ] [-t <timeout>]
@@ -40,6 +40,7 @@
 
 $p->getopts;
 
+my $verbose = $p->opts->verbose;
 my $id = uc $p->opts->id;
 my $ua = LWP::UserAgent->new();
 $ua->agent($PROGNAME.'/'. $VERSION);
@@ -56,9 +57,10 @@
 my $table = $root->look_down('_tag' => 'td', 'id' => 'contentCell');
 my $t = $table->find('p') or $p->nagios_exit(ERROR, "Couldn't parse html");
 $t = $t->as_text;
-
+print "recv:$t\n" if $verbose;
 
 if ($t =~ /^ID-kaardi nr \Q$id\E omanikuga on seotud järgmised ID-piletid\.$/) {
+	print "parse tickets list\n" if $verbose;
 	my %map = (
 		'Pileti tüüp' => 'type',
 		'Kehtivuse lõppaeg' => 'end',
@@ -83,6 +85,7 @@
 	for my $t ($table->look_down('_tag' => 'table',  class => 'content')) {
 		my %td = map { $_ = $_->as_text; exists($map{$_}) ? $map{$_} : $_ } $t->find('td');
 		push(@tickets, { type => $td{type}, start => parse_date($td{start}), end => parse_date($td{end}) });
+		print "add ticket: type: $td{type}; start: $td{start}; end: $td{end}\n" if $verbose;
 	}
 
 	$p->nagios_exit(WARN, "No tickets found") unless @tickets;
@@ -99,6 +102,7 @@
 
 	my $warn = parse_time($p->opts->warning);
 	my $crit = parse_time($p->opts->critical);
+	print "warn: $warn; crit: $crit\n" if $verbose;
 
 	if ($crit >= $warn) {
 		$p->nagios_exit(ERROR, "critical level has to be smaller than warning level");
@@ -107,9 +111,19 @@
 	# find first active ticket
 	my $now = time();
 	for my $t (@tickets) {
+		print "check: $t->{start}; $t->{end}\n" if $verbose;
+		if ($t->{start} > $now) {
+			# ticket in the future, check if it's start period fits to critical range
+			if ($t->{start} - $now < $crit) {
+				print "found ticket from future\n" if $verbose;
+				my $tm = localtime($t->{end});
+				$p->nagios_exit(OK, "Ticket '$t->{type}' expires on $tm");
+			}
+		}
 		if ($t->{start} < $now && $t->{end} >= $now) {
+			print "found active ticket\n" if $verbose;
 			my $tm = localtime($t->{end});
-			# found ticket, but is it critical/warning level?
+			# found active ticket, but is it critical/warning level?
 			if ($t->{end} - $now < $crit) {
 				$p->nagios_exit(CRITICAL, "Ticket '$t->{type}' expires on $tm");
 			}
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/check_id-pilet.pl?r1=1.3&r2=1.4&f=u



More information about the pld-cvs-commit mailing list