[check_postgres] [commit] Handle "meta" commands differently.
check_postgres at bucardo.org
check_postgres at bucardo.org
Thu Apr 23 20:18:01 UTC 2009
Committed by Greg Sabino Mullane <greg at endpoint.com>
Handle "meta" commands differently.
---
check_postgres.pl | 39 +++++++++++++++++++++++----------------
1 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/check_postgres.pl b/check_postgres.pl
index 173ddad..ed242ae 100755
--- a/check_postgres.pl
+++ b/check_postgres.pl
@@ -484,6 +484,9 @@ our $ME = basename($0);
our $ME2 = 'check_postgres.pl';
our $USAGE = msg('usage', $ME);
+## This gets turned on for meta-commands which don't hit a Postgres database
+our $nohost = 0;
+
## Global error string, mostly used for MRTG error handling
our $ERROR = '';
@@ -796,6 +799,10 @@ sub add_response {
if (defined $opt{host2} and length $opt{host2}->[0]) {
$db->{host} .= " => $opt{host2}->[0]";
}
+ if ($nohost) {
+ push @{$type->{''}} => [$msg,''];
+ return;
+ }
my $header = sprintf q{%s%s%s},
$action_info->{$action}[0] ? '' : (defined $db->{dbservice} and length $db->{dbservice}) ?
qq{service=$db->{dbservice} } : qq{DB "$db->{dbname}" },
@@ -1183,15 +1190,20 @@ check_checkpoint() if $action eq 'checkpoint';
## Check for disabled triggers
check_disabled_triggers() if $action eq 'disabled_triggers';
+## Check for any prepared transactions
+check_prepared_txns() if $action eq 'prepared_txns';
+
+##
+## Everything past here does not hit a Postgres database
+##
+$nohost = 1;
+
## Check for new versions of check_postgres.pl
check_new_version_cp() if $action eq 'new_version_cp';
## Check for new versions of Postgres
check_new_version_pg() if $action eq 'new_version_pg';
-## Check for any prepared transactions
-check_prepared_txns() if $action eq 'prepared_txns';
-
finishup();
exit 0;
@@ -4430,17 +4442,14 @@ sub check_new_version_cp {
}
if (! length $newver) {
- printf "UNKNOWN: %s\n", msg('new-cp-fail');
- exit 3;
+ add_unknown msg('new-cp-fail');
}
-
- if ($newver ne $VERSION) {
- printf "WARNING: %s\n", msg('new-cp-warn', $newver, $VERSION);
- exit 1;
+ elsif ($newver ne $VERSION) {
+ add_warning msg('new-cp-warn', $newver, $VERSION);
+ }
+ else {
+ add_ok msg('new-cp-ok', $newver);
}
-
- printf "OK: %s\n", msg('new-cp-ok', $newver);
- exit 0;
} ## end of check_new_version_cp
@@ -4488,12 +4497,10 @@ sub check_new_version_pg {
}
my $newrev = $newver{$ver};
if ($newrev > $rev) {
- my $msg = sprintf "WARNING: %s\n", msg('new-pg-big', "$ver.$newrev", $currver);
- add_warning $msg;
+ add_warning msg('new-pg-big', "$ver.$newrev", $currver);
}
elsif ($newrev < $rev) {
- my $msg = sprintf "WARNING: %s\n", msg('new-pg-small', "$ver.$newrev", $currver);
- add_critical $msg;
+ add_critical msg('new-pg-small', "$ver.$newrev", $currver);
}
else {
add_ok msg('new-pg-match', $currver);
--
1.6.0.5
More information about the Check_postgres
mailing list