improve Meta Services for centreon 2.0.

git-svn-id: http://svn.centreon.com/trunk/plugins-2.x@6653 6bcd3966-0018-0410-8128-fd23d134de7e
This commit is contained in:
Julien Mathis 2008-09-29 12:32:15 +00:00
parent 6043d206f6
commit e8edca02bb

View File

@ -72,70 +72,76 @@ my $metric_id;
sub return_value($$$$){ sub return_value($$$$){
my $sth_output = $dbh->prepare("SELECT meta_display FROM `meta_service` WHERE `meta_id` = '".$_[3]."'"); my $sth_output = $dbh->prepare("SELECT meta_display FROM `meta_service` WHERE `meta_id` = '".$_[3]."'");
if (!$sth_output->execute) {die "Error:" . $sth_output->errstr . "\n";} if (!$sth_output->execute) {
die "Error:" . $sth_output->errstr . "\n";
}
my $sth_output_data = $sth_output->fetchrow_hashref(); my $sth_output_data = $sth_output->fetchrow_hashref();
my $output = $sth_output_data->{'meta_display'}; my $output = $sth_output_data->{'meta_display'};
if ($output) { if ($output) {
$output =~ s/\%d/$result/g; $output =~ s/\%d/$result/g;
} }
if ($warning ne $critical){ if (defined($warning) && defined($critical) && $warning ne $critical){
if ($warning < $critical){ # Bon sens if ($warning < $critical){ # Bon sens
if ($result < $warning){ if ($result < $warning){
if ($output) {
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n";
}else {
print "OK result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'OK'};
} elsif (($result >= $warning) && ($result < $critical)){
if ($output) { if ($output) {
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n"; print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
}else { } else {
print "WARNING result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n"; print "OK result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
} }
exit $ERRORS{'WARNING'}; exit $ERRORS{'OK'};
} elsif ($result >= $critical){ } elsif (($result >= $warning) && ($result < $critical)){
if ($output) { if ($output) {
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n"; print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
}else { } else {
print "CRITICAL result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n"; print "WARNING result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
} }
exit $ERRORS{'CRITICAL'}; exit $ERRORS{'WARNING'};
} } elsif ($result >= $critical){
} else { # sens inverse if ($output) {
if ($result < $critical){ print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
if ($output) { } else {
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n"; print "CRITICAL result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
}else { }
print "CRITICAL result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n"; exit $ERRORS{'CRITICAL'};
} }
exit $ERRORS{'CRITICAL'}; } else { # sens inverse
} elsif ($result >= $critical && $result < $warning){ if ($result < $critical){
if ($output) { if ($output) {
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n"; print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
}else { } else {
print "WARNING result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n"; print "CRITICAL result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
} }
exit $ERRORS{'WARNING'}; exit $ERRORS{'CRITICAL'};
} elsif ($result >= $warning){ } elsif ($result >= $critical && $result < $warning){
if ($output) { if ($output) {
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n"; print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
}else { } else {
print "OK result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n"; print "WARNING result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
} }
exit $ERRORS{'OK'}; exit $ERRORS{'WARNING'};
} else{ } elsif ($result >= $warning){
if ($output) { if ($output) {
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n"; print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
}else { } else {
print "OK result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n"; print "OK result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
} }
exit $ERRORS{'OK'}; exit $ERRORS{'OK'};
} } else{
} if ($output) {
print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
} else {
print "OK result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'OK'};
}
}
} else { } else {
print "ERROR : warnig level = critical level"; if ($output) {
exit $ERRORS{'CRITICAL'}; print $output. "|value=" . $result . "\n";
} else {
print "OK result : " . $result . "|value=".$result."\n";
}
exit $ERRORS{'OK'};
} }
} }