From 0e1cb6bea1b011f0a3f779cd5414fc36573ae2d4 Mon Sep 17 00:00:00 2001 From: Guillaume Lelarge Date: Sun, 25 Sep 2011 21:47:30 +0200 Subject: Allow the check of multiple db with connection action We still stop at the first error. Per request from Aziz Boultabi. --- check_postgres.pl | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'check_postgres.pl') diff --git a/check_postgres.pl b/check_postgres.pl index aed801554..e05e5539c 100755 --- a/check_postgres.pl +++ b/check_postgres.pl @@ -3836,23 +3836,25 @@ sub check_connection { my $info = run_command('SELECT version() AS v'); - $db = $info->{db}[0]; + for $db (@{$info->{db}}) { - if (exists $info->{fatal}) { - $MRTG and do_mrtg({one => 0}); - add_critical $db->{error}; - return; - } + my $err = $db->{error} || ''; + if ($err =~ /FATAL/) { + $MRTG and do_mrtg({one => 0}); + add_critical $db->{error}; + return; + } - my $ver = ($db->{slurp}[0]{v} =~ /(\d+\.\d+\S+)/o) ? $1 : ''; + my $ver = ($db->{slurp}[0]{v} =~ /(\d+\.\d+\S+)/o) ? $1 : ''; - $MRTG and do_mrtg({one => $ver ? 1 : 0}); + $MRTG and do_mrtg({one => $ver ? 1 : 0}); - if ($ver) { - add_ok msg('version', $ver); - } - else { - add_unknown msg('invalid-query', $db->{slurp}[0]{v}); + if ($ver) { + add_ok msg('version', $ver); + } + else { + add_unknown msg('invalid-query', $db->{slurp}[0]{v}); + } } return; -- cgit v1.2.3