From 33ad3b435f02c172e2c743a2afbd91170455954a Mon Sep 17 00:00:00 2001 From: Julien Mathis Date: Tue, 5 Jun 2007 19:29:51 +0000 Subject: [PATCH] readable now :) git-svn-id: http://svn.centreon.com/Plugins/Dev@2440 6bcd3966-0018-0410-8128-fd23d134de7e --- centreon-plugins/src/traps/fill_trapDB.pl | 5 +- .../src/traps/genSnmpttConfFile.pl | 184 +++++++++--------- centreon-plugins/src/traps/trapHandler | 10 +- 3 files changed, 99 insertions(+), 100 deletions(-) diff --git a/centreon-plugins/src/traps/fill_trapDB.pl b/centreon-plugins/src/traps/fill_trapDB.pl index b050b6fbf..06b83ee89 100644 --- a/centreon-plugins/src/traps/fill_trapDB.pl +++ b/centreon-plugins/src/traps/fill_trapDB.pl @@ -43,7 +43,7 @@ sub set_db { sub existsInDB($$) { my ($dbh, $oid,$manuf) = @_; - my $sth = $dbh->prepare("SELECT traps_id from traps where traps_oid='$oid'"); + my $sth = $dbh->prepare("SELECT traps_id FROM traps WHERE traps_oid = '$oid'"); $sth->execute(); if (defined($sth->fetchrow_array)) { $sth->finish(); @@ -95,8 +95,7 @@ sub main($$) { $last_oid = $oid; } } elsif ($_ =~/^FORMAT\ (.*)/ && $last_oid ne "") { - my $query = "UPDATE `traps` set traps_args='$1' where traps_oid='$last_oid'"; - my $sth = $dbh->prepare($query); + my $sth = $dbh->prepare("UPDATE `traps` set traps_args='$1' WHERE traps_oid = '$last_oid'"); $sth->execute(); $sth->finish(); } elsif ($_ =~ /^SDESC(.*)/ && $last_oid ne "") { diff --git a/centreon-plugins/src/traps/genSnmpttConfFile.pl b/centreon-plugins/src/traps/genSnmpttConfFile.pl index 8059d3934..5b72a4495 100644 --- a/centreon-plugins/src/traps/genSnmpttConfFile.pl +++ b/centreon-plugins/src/traps/genSnmpttConfFile.pl @@ -1,134 +1,134 @@ #! /usr/bin/perl -w +################################################################### +# Oreon is developped with GPL Licence 2.0 # -# $Id: genSnmpttConfFile.pl,v 1.0 2007/05/15 17:21:49 Sugumaran Mat $ +# GPL License: http://www.gnu.org/licenses/gpl.txt # -# Oreon's plugins are developped with GPL Licence : -# http://www.fsf.org/licenses/gpl.txt -# Developped by : Sugumaran Mathavarajan +# Developped by : Mathavarajan Sugumaran - msugumaran@merethis.com +# +################################################################### +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# For information : contact@merethis.com +#################################################################### +# +# Script init # -# The Software is provided to you AS IS and WITH ALL FAULTS. -# OREON makes no representation and gives no warranty whatsoever, -# whether express or implied, and without limitation, with regard to the quality, -# safety, contents, performance, merchantability, non-infringement or suitability for -# any particular or intended purpose of the Software found on the OREON web site. -# In no event will OREON be liable for any direct, indirect, punitive, special, -# incidental or consequential damages however they may arise and even if OREON has -# been previously advised of the possibility of such damages. use strict; use Getopt::Long; use DBI; -my $NAGIOS_TRAPS = "/srv/nagios/libexec/traps"; ############################# ## SET DATABASE CONFIGURATION # -sub set_db -{ - my $db_name = "oreon"; ## name of your database for oreon - my $login = "root"; ## user of your database - my $mdp = "mysql-password"; ## password for this user - my $dsn = "dbi:mysql:$db_name"; - return $dsn, $login, $mdp; + +sub set_db { + require "@OREON_PATH@/ODS/etc/conf.pm" + my $dsn = "dbi:mysql:$mysql_database_oreon"; + return $dsn, $mysql_user, $mysql_passwd; } ###################################### ## Get snmptt configuration files path # + sub getPath($) { my $dbh = shift; - my $query = "Select snmp_trapd_path_conf from general_opt"; - my $sth = $dbh->prepare($query); - $sth->execute; - my $path = $sth->fetchrow_array; - if (!($path =~ /\/$/)) { - $path .= "/"; - } - if (!$path) { - $path = "/etc/snmp/"; - } + my $sth = $dbh->prepare("Select snmp_trapd_path_conf from general_opt"); + $sth->execute(); + my $path = $sth->fetchrow_array(); + $path .= "/" if (!($path =~ /\/$/)); + $path = "/etc/snmp/" if (!$path); return $path; } - sub main() { print "Generating SNMPTT configuration files...\n"; my ($nbMan, $nbTraps) = (0,0); my @db = set_db(); my $dbh = DBI->connect($db[0], $db[1], $db[2]) or die "Echec de la connexion mysql\n"; my $confFiles_path = getPath($dbh); - my $query = "SELECT id, name from inventory_manufacturer"; - my $sth = $dbh->prepare($query); - $sth->execute; + + my $sth = $_[0]->prepare("SELECT nagios_path_plugins FROM general_opt LIMIT 1"); + $sth->execute(); + my $conf = $sth->fetchrow_array(); + $sth->finish(); + my $NAGIOS_TRAPS = $conf->{'nagios_path_plugins'}."traps/"; + + my $sth = $dbh->prepare("SELECT id, name from inventory_manufacturer"); + $sth->execute(); my $snmpttIni = ""; - while (my ($man_id, $man_name) = $sth->fetchrow_array) { - my $query2 = "SELECT traps_name, traps_oid, traps_status, traps_args, traps_comments"; - $query2 .= " from traps where manufacturer_id='$man_id'"; - my $sth2 = $dbh->prepare($query2); - $sth2->execute; - if (!open(FILE, "> ".$confFiles_path."snmptt-".$man_name.".conf")) { - print "Cannot open ".$confFiles_path."snmptt-".$man_name.".conf in write mode - Export aborded\n"; - exit; - } - if ($sth2->rows) { - $nbMan++; - } - while (my @values = $sth2->fetchrow_array) { - $nbTraps++; - print FILE "EVENT ".$values[0]." ".$values[1]." \"Status Event\" ".$values[2]."\n"; - if (defined($values[3])) { - print FILE "FORMAT ".$values[3]."\n"; - } - print FILE "EXEC ".$NAGIOS_TRAPS."/trapHandler.pl \$aA \$o \"\$*\"\n"; - if (defined($values[4])) { - print FILE "SDESC\n"; - print FILE $values[4]; - if ($values[4] =~ /\n$/) { - print FILE "EDESC\n\n"; - }else { - print FILE "\nEDESC\n\n"; + while (my ($man_id, $man_name) = $sth->fetchrow_array()) { + my $sth2 = $dbh->prepare("SELECT traps_name, traps_oid, traps_status, traps_args, traps_comments FROM traps WHERE manufacturer_id = '$man_id'"); + $sth2->execute(); + if (!open(FILE, "> ".$confFiles_path."snmptt-".$man_name.".conf")) { + print "Cannot open ".$confFiles_path."snmptt-".$man_name.".conf in write mode - Export aborded\n"; + exit; } - }else { - print FILE "\n"; - } - } - close FILE; - $snmpttIni .= $confFiles_path."snmptt-".$man_name.".conf\n"; - $sth2->finish; + $nbMan++ if ($sth2->rows); + while (my @values = $sth2->fetchrow_array()) { + $nbTraps++; + print FILE "EVENT ".$values[0]." ".$values[1]." \"Status Event\" ".$values[2]."\n"; + print FILE "FORMAT ".$values[3]."\n" if (defined($values[3])); + print FILE "EXEC ".$NAGIOS_TRAPS."/trapHandler.pl \$aA \$o \"\$*\"\n"; + if (defined($values[4])) { + print FILE "SDESC\n".$values[4]; + if ($values[4] =~ /\n$/) { + print FILE "EDESC\n\n"; + } else { + print FILE "\nEDESC\n\n"; + } + } else { + print FILE "\n"; + } + } + close FILE; + $snmpttIni .= $confFiles_path."snmptt-".$man_name.".conf\n"; + $sth2->finish(); } print "$nbTraps traps for $nbMan manufacturers are defined.\n"; - $sth->finish; - $dbh->disconnect; + $sth->finish(); + $dbh->disconnect(); if (!open(FILE, $confFiles_path."snmptt.ini")) { - print "Cannot open ".$confFiles_path."snmptt.ini - Export Aborded\n"; - exit; + print "Cannot open ".$confFiles_path."snmptt.ini - Export Aborded\n"; + exit; } if (!open(TEMP, "> /tmp/snmptt.ini.tmp")) { - print "Cannot open /tmp/snmptt.ini.tmp in write mode - Export Aborded\n"; - exit; + print "Cannot open /tmp/snmptt.ini.tmp in write mode - Export Aborded\n"; + exit; } my $continue = 1; while ($continue == 1) { - my $line = ; - if ($line) { - if (!($line =~ /^snmptt\_conf\_files/)) { - print TEMP $line; - }else { - $continue = 0; - } - }else { - $continue = -1; - } + my $line = ; + if ($line) { + if (!($line =~ /^snmptt\_conf\_files/)) { + print TEMP $line; + } else { + $continue = 0; + } + } else { + $continue = -1; + } } if (!$continue) { - print TEMP "snmptt_conf_files = <prepare($requete); + my $sth = $_[0]->prepare("SELECT host_name FROM host WHERE host_address='$_[1]' "); $sth->execute(); my @host; while (my $temp = $sth->fetchrow_array()) { @@ -55,18 +54,19 @@ sub get_hostinfos($$){ ########################## ## GET SERVICE DESCRIPTION # + sub get_servicename($$$) { my $query_host = "SELECT host_id from host WHERE host_name ='$_[2]'"; my $sth = $_[0]->prepare($query_host); $sth->execute(); - my $host_id = $sth -> fetchrow_array; + my $host_id = $sth -> fetchrow_array(); exit if (!defined $host_id); $sth->finish(); my $query_trap = "SELECT traps_id, traps_args, traps_status from traps where traps_oid='$_[1]'"; $sth = $_[0]->prepare($query_trap); $sth->execute(); - my ($trap_id,$argument, $trap_status) = $sth -> fetchrow_array; + my ($trap_id,$argument, $trap_status) = $sth->fetchrow_array(); exit if (!defined $trap_id); my $query_services = "SELECT service_description FROM service s, host_service_relation h, traps_service_relation t"; @@ -75,7 +75,7 @@ sub get_servicename($$$) { $sth = $_[0]->prepare($query_services); $sth->execute(); my @service; - while (my $temp = $sth -> fetchrow_array) { + while (my $temp = $sth -> fetchrow_array()) { $service[scalar(@service)] = $temp; }