Imported Upstream version 0.9.6
This commit is contained in:
27
sbin/Makefile.in
Normal file
27
sbin/Makefile.in
Normal file
@@ -0,0 +1,27 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
DATAROOTDIR=@datarootdir@
|
||||
LOGDIR=@localstatedir@
|
||||
CFGDIR=@sysconfdir@
|
||||
BINDIR=@bindir@
|
||||
CGIDIR=@sbindir@
|
||||
|
||||
INSTALL=@INSTALL@
|
||||
INSTALL_OPTS=@INSTALL_OPTS@
|
||||
|
||||
CP=@CP@
|
||||
|
||||
all html:
|
||||
|
||||
clean:
|
||||
-rm nagios-bp.cgi
|
||||
-rm whereUsed.cgi
|
||||
|
||||
distclean: clean
|
||||
-rm Makefile
|
||||
|
||||
devclean: distclean
|
||||
|
||||
install:
|
||||
$(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(CGIDIR)
|
||||
$(INSTALL) -m 755 $(INSTALL_OPTS) *.cgi $(DESTDIR)$(CGIDIR)
|
||||
1180
sbin/nagios-bp.cgi.in
Normal file
1180
sbin/nagios-bp.cgi.in
Normal file
File diff suppressed because it is too large
Load Diff
303
sbin/whereUsed.cgi.in
Normal file
303
sbin/whereUsed.cgi.in
Normal file
@@ -0,0 +1,303 @@
|
||||
#!@PERL@
|
||||
|
||||
# Nagios Business Process View and Nagios Business Process Analysis
|
||||
# Copyright (C) 2003-2010 Sparda-Datenverarbeitung eG, Nuernberg, Germany
|
||||
# Bernd Stroessreuther <berny1@users.sourceforge.net>
|
||||
#
|
||||
# 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; version 2 of the License.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
#Load modules
|
||||
use lib ('@libdir@');
|
||||
#CGI-Modul
|
||||
use CGI;
|
||||
#restrict maximum size of posted data
|
||||
$CGI::POST_MAX=5000;
|
||||
#disallow uploads
|
||||
$CGI::DISABLE_UPLOADS=1;
|
||||
#log to the log of webserver
|
||||
use CGI::Carp;
|
||||
#require a good programming
|
||||
use strict;
|
||||
#cgi simple for url encoding and decoding
|
||||
use CGI::Simple;
|
||||
#some useful functions
|
||||
use bsutils;
|
||||
#functions for getting states from the ndo database
|
||||
use ndodb;
|
||||
#functions for parsing nagios_bp_config file
|
||||
use nagiosBp;
|
||||
#get installation specific parameters: path variables and so on
|
||||
use settings;
|
||||
|
||||
#some Variables
|
||||
my $settings = getSettings();
|
||||
# where is the cgi.cfg file located?
|
||||
# from this we take the credentials and location of the database
|
||||
my $nagios_bp_conf = $settings->{'NAGIOSBP_ETC'} . "/";
|
||||
my $default_language = "de";
|
||||
my $own_url = $ENV{"SCRIPT_NAME"};
|
||||
my $cgi_simple = new CGI::Simple; #Instance of CGI simple
|
||||
my $query = new CGI; #Instance of CGI module
|
||||
my ($display, $display_status, $script_out, $info_url, $components, $hardstates, $statusinfos, $key, @component_list, @match, @object_stack, $rowcount, $rowclass, $infostring, $i);
|
||||
|
||||
# which configfile do we work on
|
||||
my $conf = $query->param("conf");
|
||||
# lang can be used if you want to use a dedicated language, not the language submitted in Accept Language Header
|
||||
my $lang = $query->param("lang");
|
||||
# the host You want to know about
|
||||
my $host = $query->param("host");
|
||||
# the service You want to know about
|
||||
my $service = $query->param("service");
|
||||
|
||||
#set defaults
|
||||
if ($conf eq "" || $conf !~ m/^[a-zA-Z0-9_\-]+$/ ) { $conf = "nagios-bp" }
|
||||
$nagios_bp_conf .= $conf . ".conf";
|
||||
|
||||
if ($service !~ m/^[a-zA-Z0-9_\-\+\.\/ ]+$/ || $service =~ m/\.\./ ) { $service = "" }
|
||||
if ($host !~ m/^[a-zA-Z0-9_\-\+\.\/ ]+$/ || $host =~ m/\.\./ ) { $host = "" }
|
||||
|
||||
# try to guess the host and service from the referer
|
||||
if ($service eq "" && $host eq "" && $ENV{'HTTP_REFERER'} ne "")
|
||||
{
|
||||
#print "HTTP_REFERER: $ENV{'HTTP_REFERER'}<br>\n";
|
||||
if ($ENV{'HTTP_REFERER'} =~ m/host=([^&]+)/)
|
||||
{
|
||||
#$host = $1;
|
||||
$host = $cgi_simple->url_decode($1);
|
||||
if ($host !~ m/^[a-zA-Z0-9_\-\+\. ]+$/ || $host =~ m/\.\./ ) { $host = "" }
|
||||
}
|
||||
if ($ENV{'HTTP_REFERER'} =~ m/service=([^&]+)/)
|
||||
{
|
||||
#$service = $1;
|
||||
$service = $cgi_simple->url_decode($1);
|
||||
if ($service !~ m/^[a-zA-Z0-9_\-\+\. ]+$/ || $service =~ m/\.\./ ) { $service = "" }
|
||||
#$service =~ s/\+/ /g;
|
||||
#$service =~ s/%20/ /g;
|
||||
}
|
||||
}
|
||||
|
||||
$service =~ s/^\s+//;
|
||||
$service =~ s/\s+$//;
|
||||
$host =~ s/^\s+//;
|
||||
$host =~ s/\s+$//;
|
||||
|
||||
#print "host: \"$host\"<br>\n";
|
||||
#print "service: \"$service\"<br><br>\n";
|
||||
|
||||
#load korrekt i18n language file
|
||||
#print "Content-Type: text/plain\n\n";
|
||||
if ($lang =~ m/^[a-z][a-z]$/)
|
||||
{
|
||||
&read_language_file($lang, $default_language);
|
||||
}
|
||||
else
|
||||
{
|
||||
&read_language_file($ENV{"HTTP_ACCEPT_LANGUAGE"}, $default_language);
|
||||
}
|
||||
|
||||
# error handling
|
||||
# parameter conf
|
||||
if ( ! -f $nagios_bp_conf || ! -r $nagios_bp_conf )
|
||||
{
|
||||
&printPageHead();
|
||||
print "<div class=\'statusTitle\' id=\'nbp_error_head\'>" . &get_lang_string("error_wrong_parameter_conf_head") . "</div>\n";
|
||||
print "<P id=\'nbp_error_text\'>\n";
|
||||
print &get_lang_string("error_wrong_parameter_conf_body", $nagios_bp_conf) . "\n";
|
||||
print "</P>\n";
|
||||
&printPageFoot();
|
||||
exit;
|
||||
}
|
||||
# parameter host
|
||||
if ( $host eq "" )
|
||||
{
|
||||
&printPageHead();
|
||||
print "<div class=\'statusTitle\' id=\'nbp_error_head\'>" . &get_lang_string("error_wrong_parameter_host_head") . "</div>\n";
|
||||
print "<P id=\'nbp_error_text\'>\n";
|
||||
print &get_lang_string("error_wrong_parameter_host_body") . "\n";
|
||||
print "</P>\n";
|
||||
&printPageFoot();
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
# generate output page
|
||||
&printPageHead();
|
||||
print " <div class=\'statusTitle\' id=\'nbp_head_wu\'>" . &get_lang_string("where_used_body") . "</div>\n";
|
||||
|
||||
($hardstates, $statusinfos) = &getStates();
|
||||
($display, $display_status, $script_out, $info_url, $components) = &getBPs($nagios_bp_conf, $hardstates);
|
||||
|
||||
if ($service eq "")
|
||||
{
|
||||
output("$host;.+", &get_lang_string("host") . " \"$host\"", "host");
|
||||
}
|
||||
else
|
||||
{
|
||||
output("$host;$service", &get_lang_string("service_on_host", $service, $host), "service");
|
||||
output("$host;.+", &get_lang_string("host") . " \"$host\"", "host");
|
||||
}
|
||||
&printPageFoot();
|
||||
|
||||
|
||||
# subroutines
|
||||
|
||||
sub output()
|
||||
{
|
||||
my $searchfor = shift;
|
||||
my $display_string = shift;
|
||||
my $object_type = shift;
|
||||
my $last;
|
||||
my @resultset = ();
|
||||
|
||||
#printBPs($searchfor);
|
||||
#
|
||||
#while (@object_stack > 0)
|
||||
#{
|
||||
# print "\nDEBUG: object_stack is now:\n";
|
||||
# printArray(\@object_stack);
|
||||
#
|
||||
# printBPs(shift @object_stack);
|
||||
#}
|
||||
|
||||
#print "DEBUG searchfor: $searchfor\n";
|
||||
foreach $key (keys %$display)
|
||||
{
|
||||
@match = grep(/^$searchfor$/, &listAllComponentsOf($key, $components));
|
||||
if (@match > 0 && $display_status->{$key} > 0)
|
||||
{
|
||||
#print "DEBUG: BP $key contains: " . join(", ", &listAllComponentsOf($key, $components)) . "\n";
|
||||
push(@resultset, $key);
|
||||
#print "DEBUG: resultset len " . @resultset . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (@resultset == 0)
|
||||
{
|
||||
print "<div class=\'statusTitle\' id=\'nbp_wu_${object_type}_head\'>" . &get_lang_string('not_used_anywhere', $display_string) . "</div>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$rowcount=0;
|
||||
print "<div class=\'statusTitle\' id=\'nbp_wu_${object_type}_head\'>" . &get_lang_string('used_in_these_bps', $display_string) . ":</div>\n";
|
||||
print "<div id=\'nbp_wu_${object_type}_box\'>\n";
|
||||
print " <table class='status' id=\'nbp_wu_${object_type}_table\'>\n";
|
||||
print " <tr>\n";
|
||||
print " <th class='status'>" . &get_lang_string('business_process') . "</th>\n";
|
||||
print " <th class='status'> </th>\n";
|
||||
print " <th class='status'>" . &get_lang_string('status') . "</th>\n";
|
||||
print " <th class='status'> </th>\n";
|
||||
print " </tr>\n";
|
||||
|
||||
foreach $key (sort @resultset)
|
||||
{
|
||||
if ($last ne $key)
|
||||
{
|
||||
$rowcount = ($rowcount + 1)%2;
|
||||
if ($rowcount == 0) { $rowclass = "statusEven" }
|
||||
else { $rowclass = "statusOdd" }
|
||||
|
||||
if ($info_url->{$key} ne "")
|
||||
{
|
||||
$infostring = "<a href=\"$info_url->{$key}\"><img class=\"nbp_no_border\" src=\"" . $settings->{'NAGIOSBP_HTML_URL'} . "/info4.gif\" alt=\"" . &get_lang_string("info") . "\" title=\"" . &get_lang_string("info") . "\"></a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$infostring = "";
|
||||
}
|
||||
|
||||
print " <tr class='$rowclass'>\n";
|
||||
print " <td class=\'$rowclass\'><a href=\"$settings->{'NAGIOSBP_CGI_URL'}/nagios-bp.cgi?detail=$key&mode=act&conf=$conf\">$display->{$key}</a> - " . &get_lang_string('prio') . " $display_status->{$key}</td>\n";
|
||||
print " <td class=\'$rowclass\'><a href=\"$settings->{'NAGIOSBP_CGI_URL'}/nagios-bp.cgi?tree=$key&ode=act&conf=$conf\"><img class=\"nbp_no_border\" src=\"$settings->{'NAGIOSBP_HTML_URL'}/tree.gif\" height=\"20\" alt=\"" . &get_lang_string('tree_view') . "\" title=\"" . &get_lang_string('tree_view') . "\"></a></td>\n";
|
||||
print " <td class=\'miniStatus$hardstates->{$key}\'>$hardstates->{$key}</td>\n";
|
||||
print " <td class=\'$rowclass\'>$infostring</td>\n";
|
||||
print " </tr>\n";
|
||||
}
|
||||
$last = $key;
|
||||
}
|
||||
print "</table>\n";
|
||||
print "</div>\n";
|
||||
}
|
||||
}
|
||||
|
||||
#sub printBPs()
|
||||
#{
|
||||
# my $search = shift;
|
||||
# my $i;
|
||||
#
|
||||
# print "DEBUG: search $search\n";
|
||||
#
|
||||
# &listAllComponentsOf("website", $components);
|
||||
# foreach $key (keys %$display)
|
||||
# {
|
||||
#print "DEBUG3: key $key\n";
|
||||
#&listAllComponentsOf($key, $components);
|
||||
#$components->{$key} =~ s/\s*\d+\s+of:\s*//;
|
||||
#@component_list = split(/\s*&|\||\+\s*/, $components->{$key});
|
||||
#for ($i=0; $i<@component_list; $i++)
|
||||
#{
|
||||
# $component_list[$i] = &cutOffSpaces($component_list[$i]);
|
||||
# print "DEBUG4: component_list \"$component_list[$i]\"\n";
|
||||
#}
|
||||
#@match = grep(/^$search$/, @component_list);
|
||||
#printArray(\@match);
|
||||
#if (@match > 0)
|
||||
#{
|
||||
# if ($display_status->{$key} == 0)
|
||||
# {
|
||||
# #print "\nDEBUG: putting on stack: $key<br>\n";
|
||||
# push(@object_stack, $key)
|
||||
# }
|
||||
# else
|
||||
# {
|
||||
# push(@resultset, $key);
|
||||
# #print "\nDEBUG: $key (prio " . $display_status->{$key} . ")<br>\n";
|
||||
# #printArray(\@match);
|
||||
# }
|
||||
#}
|
||||
# }
|
||||
#}
|
||||
|
||||
sub printPageHead()
|
||||
{
|
||||
print $query->header;
|
||||
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">' . "\n";
|
||||
print "<html>\n";
|
||||
print " <head>\n";
|
||||
print " <meta http-equiv=\"Content-type\" content=\"text/html;charset=ISO-8859-1\">\n";
|
||||
print " <title>" . &get_lang_string("where_used_head") . "</title>\n";
|
||||
print " <link rel=\'stylesheet\' type=\'text/css\' href=\'$settings->{'NAGIOS_BASE_URL'}/stylesheets/status.css\'>\n";
|
||||
print " <link rel=\'stylesheet\' type=\'text/css\' href=\'$settings->{'NAGIOSBP_HTML_URL'}/stylesheets/nagios-bp.css\'>\n";
|
||||
print " <link rel=\'stylesheet\' type=\'text/css\' href=\'$settings->{'NAGIOSBP_HTML_URL'}/stylesheets/user.css\'>\n";
|
||||
print " </head>\n";
|
||||
print " <body class=\'status\' id=\'nbp_body_wu\'>\n";
|
||||
}
|
||||
|
||||
sub printPageFoot()
|
||||
{
|
||||
my $languages = &getAvaiableLanguages();
|
||||
print " <div id=\"nbp_foot\">\n";
|
||||
print " <div id=\'nbp_foot_version\'>Nagios Business Process AddOn, " . &get_lang_string("version") . " " . &getVersion . "</div>\n";
|
||||
print " <div id=\'nbp_foot_language\'>\n";
|
||||
print " " . &get_lang_string("language") . ":\n";
|
||||
foreach $i (@$languages)
|
||||
{
|
||||
print " <a href=\"$own_url?host=$host&service=$service&lang=$i&conf=$conf\">$i</a> \n";
|
||||
}
|
||||
print " </div>\n";
|
||||
print " </div>\n";
|
||||
print " </body>\n";
|
||||
print "</html>\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user