add api
Former-commit-id: 7704a1226754067aee849526329eebce372063a1
|
@ -0,0 +1,26 @@
|
|||
#!/bin/bash
|
||||
source build_vars.sh
|
||||
|
||||
if [ ! -d $RPMHOME/RPMS ]; then
|
||||
mkdir -p $RPMHOME/RPMS || exit 1
|
||||
fi
|
||||
|
||||
echo "Creating RPM packages in $RPMHOME/RPMS"
|
||||
|
||||
# Console
|
||||
rpmbuild -ba $CODEHOME/pandora_console/pandora_console.rhel7.spec || exit 1
|
||||
|
||||
# Server
|
||||
rpmbuild -ba $CODEHOME/pandora_server/pandora_server.rhel7.spec || exit 1
|
||||
|
||||
# Unix agent
|
||||
rpmbuild -ba $CODEHOME/pandora_agents/unix/pandora_agent.rhel7.spec || exit 1
|
||||
|
||||
# Enterprise console
|
||||
rpmbuild -ba $PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.rhel7.spec || exit 1
|
||||
|
||||
# Enterprise server
|
||||
rpmbuild -ba $PANDHOME_ENT/pandora_server/PandoraFMS-Enterprise/pandora_server_enterprise.rhel7.spec || exit 1
|
||||
|
||||
exit 0
|
||||
|
|
@ -26,6 +26,7 @@ $CODEHOME/pandora_server/pandora_server.spec \
|
|||
$PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.spec \
|
||||
$PANDHOME_ENT/pandora_server/PandoraFMS-Enterprise/pandora_server_enterprise.spec \
|
||||
$CODEHOME/pandora_console/pandora_console.redhat.spec \
|
||||
$CODEHOME/pandora_console/pandora_console.rhel7.spec \
|
||||
$CODEHOME/pandora_agents/unix/pandora_agent.redhat.spec \
|
||||
$CODEHOME/pandora_server/pandora_server.redhat.spec \
|
||||
$PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.redhat.spec \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, AIX version
|
||||
# Version 7.0NG.733, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, FreeBSD Version
|
||||
# Version 7.0NG.733, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, HP-UX Version
|
||||
# Version 7.0NG.733, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, Solaris Version
|
||||
# Version 7.0NG.733, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2010 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
|
||||
# This program is Free Software, you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.732, AIX version
|
||||
# Version 7.0NG.733, AIX version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
# FreeBSD/IPSO version
|
||||
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.732, HPUX Version
|
||||
# Version 7.0NG.733, HPUX Version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
# Licensed under GPL license v2,
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.732, Solaris version
|
||||
# Version 7.0NG.733, Solaris version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, AIX version
|
||||
# Version 7.0NG.733, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.732-190325
|
||||
Version: 7.0NG.733-190412
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.732-190325"
|
||||
pandora_version="7.0NG.733-190412"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2012 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, FreeBSD Version
|
||||
# Version 7.0NG.733, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2016 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, HP-UX Version
|
||||
# Version 7.0NG.733, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2014 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, GNU/Linux
|
||||
# Version 7.0NG.733, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, NetBSD Version
|
||||
# Version 7.0NG.733, NetBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, Solaris Version
|
||||
# Version 7.0NG.733, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -41,8 +41,8 @@ my $Sem = undef;
|
|||
# Semaphore used to control the number of threads
|
||||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.732';
|
||||
use constant AGENT_BUILD => '190325';
|
||||
use constant AGENT_VERSION => '7.0NG.733';
|
||||
use constant AGENT_BUILD => '190412';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
@ -662,6 +662,8 @@ sub parse_conf_modules($) {
|
|||
$module->{'ff_timeout'} = $1;
|
||||
} elsif ($line =~ /^\s*module_each_ff\s+(\S+)\s*$/) {
|
||||
$module->{'each_ff'} = $1;
|
||||
} elsif ($line =~ /^\s*module_ff_type\s+(\d+)\s*$/) {
|
||||
$module->{'ff_type'} = $1;
|
||||
# Macros
|
||||
} elsif ($line =~ /^\s*module_macro(\S+)\s+(.*)\s*$/) {
|
||||
$module->{'macros'}{$1} = $2;
|
||||
|
@ -2101,45 +2103,28 @@ sub cron_next_execution {
|
|||
}
|
||||
|
||||
# Get day of the week and month from cron config
|
||||
my ($mday, $wday) = (split (/\s/, $cron))[2, 4];
|
||||
my ($wday) = (split (/\s/, $cron))[4];
|
||||
# Check the wday values to avoid infinite loop
|
||||
my ($wday_down, $wday_up) = cron_get_interval($wday);
|
||||
if ($wday_down ne "*" && ($wday_down > 6 || (defined($wday_up) && $wday_up > 6))) {
|
||||
log_message('setup', "Invalid cron configuration $cron. Day of the week is out of limits.");
|
||||
$wday = "*";
|
||||
}
|
||||
|
||||
# Get current time and day of the week
|
||||
my $cur_time = time();
|
||||
my $cur_wday = (localtime ($cur_time))[6];
|
||||
|
||||
# Any day of the week
|
||||
if ($wday eq '*') {
|
||||
my $nex_time = cron_next_execution_date ($cron, $cur_time, $interval);
|
||||
return $nex_time - time();
|
||||
}
|
||||
# A range?
|
||||
else {
|
||||
$wday = cron_get_closest_in_range ($cur_wday, $wday);
|
||||
my $nex_time = cron_next_execution_date ($cron, $cur_time, $interval);
|
||||
|
||||
# Check the day
|
||||
while (!cron_check_interval($wday, (localtime ($nex_time))[6])) {
|
||||
# If it does not acomplish the day of the week, go to the next day.
|
||||
$nex_time += 86400;
|
||||
$nex_time = cron_next_execution_date ($cron, $nex_time, 0);
|
||||
}
|
||||
|
||||
# A specific day of the week
|
||||
my $count = 0;
|
||||
my $nex_time = $cur_time;
|
||||
do {
|
||||
$nex_time = cron_next_execution_date ($cron, $nex_time, $interval);
|
||||
my $nex_time_wd = $nex_time;
|
||||
my ($nex_mon, $nex_wday) = (localtime ($nex_time_wd))[4, 6];
|
||||
my $nex_mon_wd;
|
||||
do {
|
||||
# Check the day of the week
|
||||
if ($nex_wday == $wday) {
|
||||
return $nex_time_wd - time();
|
||||
}
|
||||
|
||||
# Move to the next day of the month
|
||||
$nex_time_wd += 86400;
|
||||
($nex_mon_wd, $nex_wday) = (localtime ($nex_time_wd))[4, 6];
|
||||
} while ($mday eq '*' && $nex_mon_wd == $nex_mon);
|
||||
$count++;
|
||||
} while ($count < 60);
|
||||
|
||||
# Something went wrong, default to 5 minutes
|
||||
return $interval;
|
||||
return $nex_time - time();
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
|
@ -2151,7 +2136,30 @@ sub cron_check_syntax ($) {
|
|||
return 0 if !defined ($cron);
|
||||
return ($cron =~ m/^(\d|\*|-)+ (\d|\*|-)+ (\d|\*|-)+ (\d|\*|-)+ (\d|\*|-)+$/);
|
||||
}
|
||||
###############################################################################
|
||||
# Check if a value is inside an interval.
|
||||
###############################################################################
|
||||
sub cron_check_interval {
|
||||
my ($elem_cron, $elem_curr_time) = @_;
|
||||
|
||||
# Return 1 if wildcard.
|
||||
return 1 if ($elem_cron eq "*");
|
||||
|
||||
my ($down, $up) = cron_get_interval($elem_cron);
|
||||
# Check if it is not a range
|
||||
if (!defined($up)) {
|
||||
return ($down == $elem_curr_time) ? 1 : 0;
|
||||
}
|
||||
|
||||
# Check if it is on the range
|
||||
if ($down < $up) {
|
||||
return 0 if ($elem_curr_time < $down || $elem_curr_time > $up);
|
||||
} else {
|
||||
return 0 if ($elem_curr_time > $down || $elem_curr_time < $up);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
###############################################################################
|
||||
# Get the next execution date for the given cron entry in seconds since epoch.
|
||||
###############################################################################
|
||||
|
@ -2189,8 +2197,7 @@ sub cron_next_execution_date {
|
|||
my @nex_time_array = @curr_time_array;
|
||||
|
||||
# Update minutes
|
||||
my ($min_down, undef) = cron_get_interval ($min);
|
||||
$nex_time_array[0] = ($min_down eq '*') ? 0 : $min_down;
|
||||
$nex_time_array[0] = cron_get_next_time_element($min);
|
||||
|
||||
$nex_time = cron_valid_date(@nex_time_array, $cur_year);
|
||||
if ($nex_time >= $cur_time) {
|
||||
|
@ -2224,8 +2231,7 @@ sub cron_next_execution_date {
|
|||
return $nex_time if cron_is_in_cron(\@cron_array, \@nex_time_array);
|
||||
|
||||
#Update the hour if fails
|
||||
my ($hour_down, undef) = cron_get_interval ($hour);
|
||||
$nex_time_array[1] = ($hour_down eq '*') ? 0 : $hour_down;
|
||||
$nex_time_array[1] = cron_get_next_time_element($hour);
|
||||
|
||||
# When an overflow is passed check the hour update again
|
||||
$nex_time = cron_valid_date(@nex_time_array, $cur_year);
|
||||
|
@ -2253,10 +2259,9 @@ sub cron_next_execution_date {
|
|||
return $nex_time if cron_is_in_cron(\@cron_array, \@nex_time_array);
|
||||
|
||||
#Update the day if fails
|
||||
my ($mday_down, undef) = cron_get_interval ($mday);
|
||||
$nex_time_array[2] = ($mday_down eq '*') ? 1 : $mday_down;
|
||||
$nex_time_array[2] = cron_get_next_time_element($mday, 1);
|
||||
|
||||
# When an overflow is passed check the day update in the next execution
|
||||
# When an overflow is passed check the hour update in the next execution
|
||||
$nex_time = cron_valid_date(@nex_time_array, $cur_year);
|
||||
if ($nex_time >= $cur_time) {
|
||||
return $nex_time if cron_is_in_cron(\@cron_array, \@nex_time_array);
|
||||
|
@ -2276,8 +2281,7 @@ sub cron_next_execution_date {
|
|||
return $nex_time if cron_is_in_cron(\@cron_array, \@nex_time_array);
|
||||
|
||||
#Update the month if fails
|
||||
my ($mon_down, undef) = cron_get_interval ($mon);
|
||||
$nex_time_array[3] = ($mon_down eq '*') ? 0 : $mon_down;
|
||||
$nex_time_array[3] = cron_get_next_time_element($mon);
|
||||
|
||||
# When an overflow is passed check the month update in the next execution
|
||||
$nex_time = cron_valid_date(@nex_time_array, $cur_year);
|
||||
|
@ -2308,23 +2312,30 @@ sub cron_is_in_cron {
|
|||
#If there is no elements means that is in cron
|
||||
return 1 unless (defined($elem_cron) || defined($elem_curr_time));
|
||||
|
||||
# Go to last element if current is a wild card
|
||||
if ($elem_cron ne '*') {
|
||||
my ($down, $up) = cron_get_interval($elem_cron);
|
||||
# Check if there is no a range
|
||||
return 0 if (!defined($up) && ($down != $elem_curr_time));
|
||||
# Check if there is on the range
|
||||
if (defined($up)) {
|
||||
if ($down < $up) {
|
||||
return 0 if ($elem_curr_time < $down || $elem_curr_time > $up);
|
||||
} else {
|
||||
return 0 if ($elem_curr_time > $down || $elem_curr_time < $up);
|
||||
}
|
||||
}
|
||||
}
|
||||
# Check the element interval
|
||||
return 0 unless (cron_check_interval($elem_cron, $elem_curr_time));
|
||||
|
||||
return cron_is_in_cron(\@deref_elems_cron, \@deref_elems_curr_time);
|
||||
}
|
||||
################################################################################
|
||||
#Get the next tentative time for a cron value or interval in case of overflow.
|
||||
#Floor data is the minimum localtime data for a position. Ex:
|
||||
#Ex:
|
||||
# * should returns floor data.
|
||||
# 5 should returns 5.
|
||||
# 10-55 should returns 10.
|
||||
# 55-10 should retunrs floor data.
|
||||
################################################################################
|
||||
sub cron_get_next_time_element {
|
||||
# Default floor data is 0
|
||||
my ($curr_element, $floor_data) = @_;
|
||||
$floor_data = 0 unless defined($floor_data);
|
||||
|
||||
my ($elem_down, $elem_up) = cron_get_interval ($curr_element);
|
||||
return ($elem_down eq '*' || (defined($elem_up) && $elem_down > $elem_up))
|
||||
? $floor_data
|
||||
: $elem_down;
|
||||
}
|
||||
###############################################################################
|
||||
# Returns the interval of a cron element. If there is not a range,
|
||||
# returns an array with the first element in the first place of array
|
||||
|
@ -2416,12 +2427,11 @@ sub check_module_cron {
|
|||
return 1 unless ($is_first);
|
||||
|
||||
# Check if current timestamp is a valid cron date
|
||||
my $next_execution = cron_next_execution_date(
|
||||
my $next_execution = cron_next_execution(
|
||||
$module->{'cron'},
|
||||
$now - $interval,
|
||||
$interval
|
||||
0
|
||||
);
|
||||
return 1 if ($next_execution == $now);
|
||||
return 1 if (time() + $next_execution == $now);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2532,6 +2542,7 @@ sub write_module_xml ($@) {
|
|||
$Xml .= " <min_ff_event_critical>" . $module->{'min_ff_event_critical'} . "</min_ff_event_critical>\n" if (defined ($module->{'min_ff_event_critical'}));
|
||||
$Xml .= " <ff_timeout>" . $module->{'ff_timeout'} . "</ff_timeout>\n" if (defined ($module->{'ff_timeout'}));
|
||||
$Xml .= " <each_ff>" . $module->{'each_ff'} . "</each_ff>\n" if (defined ($module->{'each_ff'}));
|
||||
$Xml .= " <ff_type>" . $module->{'ff_type'} . "</ff_type>\n" if (defined ($module->{'ff_type'}));
|
||||
|
||||
# Data list
|
||||
if ($#data > 0) {
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.732
|
||||
%define release 190325
|
||||
%define version 7.0NG.733
|
||||
%define release 190412
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.732
|
||||
%define release 190325
|
||||
%define version 7.0NG.733
|
||||
%define release 190412
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
||||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.732"
|
||||
PI_BUILD="190325"
|
||||
PI_VERSION="7.0NG.733"
|
||||
PI_BUILD="190412"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2017 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.733
|
||||
|
||||
# This program is Free Software, you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||
|
@ -44,6 +44,8 @@ remote_config 0
|
|||
#agent_name_cmd cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\agentname.vbs"
|
||||
agent_name_cmd __rand__
|
||||
|
||||
# Agent alias. Name should be unique rather than alias. Hostname by default
|
||||
# agent_alias $Alias$
|
||||
|
||||
#Parent agent_name
|
||||
#parent_agent_name caprica
|
||||
|
|
|
@ -3,7 +3,7 @@ AllowLanguageSelection
|
|||
{Yes}
|
||||
|
||||
AppName
|
||||
{Pandora FMS Windows Agent v7.0NG.732}
|
||||
{Pandora FMS Windows Agent v7.0NG.733}
|
||||
|
||||
ApplicationID
|
||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{190325}
|
||||
{190412}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -214,7 +214,7 @@ int Cron::getResetValue (int position) {
|
|||
int default_value = 0;
|
||||
// Days start in 1
|
||||
if (position == 2) default_value = 1;
|
||||
return isWildCard(position)
|
||||
return (isWildCard(position) || !isNormalInterval(position))
|
||||
? default_value
|
||||
: this->params[position][CRDOWN];
|
||||
}
|
||||
|
|
|
@ -78,6 +78,7 @@ Pandora_Module::Pandora_Module (string name) {
|
|||
this->warning_inverse = "";
|
||||
this->quiet = "";
|
||||
this->module_ff_interval = "";
|
||||
this->module_ff_type = "";
|
||||
this->module_alert_template = "";
|
||||
this->module_crontab = "";
|
||||
}
|
||||
|
@ -734,6 +735,13 @@ Pandora_Module::getXml () {
|
|||
module_xml += "</module_ff_interval>\n";
|
||||
}
|
||||
|
||||
/* Module FF type */
|
||||
if (this->module_ff_type != "") {
|
||||
module_xml += "\t<ff_type>";
|
||||
module_xml += this->module_ff_type;
|
||||
module_xml += "</ff_type>\n";
|
||||
}
|
||||
|
||||
/* Module Alert template */
|
||||
if (this->module_alert_template != "") {
|
||||
module_xml += "\t<alert_template>";
|
||||
|
@ -1028,6 +1036,16 @@ Pandora_Module::setModuleFFInterval (string value) {
|
|||
this->module_ff_interval = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the module FF type for the module.
|
||||
*
|
||||
* @param value module FF type value to set.
|
||||
*/
|
||||
void
|
||||
Pandora_Module::setModuleFFType (string value) {
|
||||
this->module_ff_type = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the module Alert template for the module.
|
||||
*
|
||||
|
|
|
@ -176,6 +176,7 @@ namespace Pandora_Modules {
|
|||
string unit, custom_id, str_warning, str_critical;
|
||||
string module_group, warning_inverse, critical_inverse, quiet;
|
||||
string module_ff_interval, module_alert_template, module_crontab;
|
||||
string module_ff_type;
|
||||
string critical_instructions, warning_instructions, unknown_instructions, tags;
|
||||
|
||||
protected:
|
||||
|
@ -277,6 +278,7 @@ namespace Pandora_Modules {
|
|||
void setWarningInverse (string value);
|
||||
void setQuiet (string value);
|
||||
void setModuleFFInterval (string value);
|
||||
void setModuleFFType (string value);
|
||||
void setModuleAlertTemplate (string value);
|
||||
void setModuleCrontab (string value);
|
||||
|
||||
|
|
|
@ -119,6 +119,7 @@ using namespace Pandora_Strutils;
|
|||
#define TOKEN_WARNING_INVERSE ("module_warning_inverse ")
|
||||
#define TOKEN_QUIET ("module_quiet ")
|
||||
#define TOKEN_MODULE_FF_INTERVAL ("module_ff_interval ")
|
||||
#define TOKEN_MODULE_FF_TYPE ("module_ff_type ")
|
||||
#define TOKEN_MACRO ("module_macro")
|
||||
#define TOKEN_NATIVE_ENCODING ("module_native_encoding")
|
||||
#define TOKEN_ALERT_TEMPLATE ("module_alert_template")
|
||||
|
@ -176,7 +177,7 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||
string module_unit, module_group, module_custom_id, module_str_warning, module_str_critical;
|
||||
string module_critical_instructions, module_warning_instructions, module_unknown_instructions, module_tags;
|
||||
string module_critical_inverse, module_warning_inverse, module_quiet, module_ff_interval;
|
||||
string module_native_encoding, module_alert_template;
|
||||
string module_native_encoding, module_alert_template, module_ff_type;
|
||||
string macro;
|
||||
Pandora_Module *module;
|
||||
bool numeric;
|
||||
|
@ -254,6 +255,7 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||
module_warning_inverse = "";
|
||||
module_quiet = "";
|
||||
module_ff_interval = "";
|
||||
module_ff_type = "";
|
||||
module_native_encoding = "";
|
||||
module_alert_template = "";
|
||||
module_user_session = "";
|
||||
|
@ -508,6 +510,10 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||
module_ff_interval = parseLine (line, TOKEN_MODULE_FF_INTERVAL);
|
||||
}
|
||||
|
||||
if (module_ff_type == "") {
|
||||
module_ff_type = parseLine (line, TOKEN_MODULE_FF_TYPE);
|
||||
}
|
||||
|
||||
if (module_alert_template == "") {
|
||||
module_alert_template = parseLine (line, TOKEN_ALERT_TEMPLATE);
|
||||
module_alert_template.erase (0,1);
|
||||
|
@ -1087,6 +1093,13 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||
}
|
||||
}
|
||||
|
||||
if (module_ff_type != "") {
|
||||
pos_macro = module_ff_type.find(macro_name);
|
||||
if (pos_macro != string::npos){
|
||||
module_ff_type.replace(pos_macro, macro_name.size(), macro_value);
|
||||
}
|
||||
}
|
||||
|
||||
if (module_alert_template != "") {
|
||||
pos_macro = module_alert_template.find(macro_name);
|
||||
if (pos_macro != string::npos){
|
||||
|
@ -1448,6 +1461,10 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||
module->setModuleFFInterval (module_ff_interval);
|
||||
}
|
||||
|
||||
if (module_ff_type != "") {
|
||||
module->setModuleFFType (module_ff_type);
|
||||
}
|
||||
|
||||
if (module_alert_template != "") {
|
||||
module->setModuleAlertTemplate (module_alert_template);
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.732(Build 190325)")
|
||||
#define PANDORA_VERSION ("7.0NG.733(Build 190412)")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.732(Build 190325))"
|
||||
VALUE "ProductVersion", "(7.0NG.733(Build 190412))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.732-190325
|
||||
Version: 7.0NG.733-190412
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.732-190325"
|
||||
pandora_version="7.0NG.733-190412"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -661,7 +661,7 @@ $ignored_params['refresh'] = '';
|
|||
else {
|
||||
|
||||
var agentes_id = $("#id_agents2").val();
|
||||
var id_agentes = $.get("full_agents_id");
|
||||
var id_agentes = getQueryParam("full_agents_id");
|
||||
if (agentes_id === null && id_agentes !== null) {
|
||||
id_agentes = id_agentes.split(";")
|
||||
id_agentes.forEach(function(element) {
|
||||
|
@ -799,7 +799,7 @@ $ignored_params['refresh'] = '';
|
|||
$("#module").append (option);
|
||||
});
|
||||
|
||||
var id_modules = $.get("full_modules_selected");
|
||||
var id_modules = getQueryParam("full_modules_selected");
|
||||
if(id_modules !== null) {
|
||||
id_modules = id_modules.split(";");
|
||||
id_modules.forEach(function(element) {
|
||||
|
@ -812,20 +812,18 @@ $ignored_params['refresh'] = '';
|
|||
);
|
||||
}
|
||||
|
||||
(function($) {
|
||||
$.get = function(key) {
|
||||
key = key.replace(/[[]/, '[');
|
||||
key = key.replace(/[]]/, ']');
|
||||
var pattern = "[?&]" + key + "=([^&#]*)";
|
||||
var regex = new RegExp(pattern);
|
||||
var url = unescape(window.location.href);
|
||||
var results = regex.exec(url);
|
||||
if (results === null) {
|
||||
return null;
|
||||
} else {
|
||||
return results[1];
|
||||
}
|
||||
function getQueryParam (key) {
|
||||
key = key.replace(/[[]/, '[');
|
||||
key = key.replace(/[]]/, ']');
|
||||
var pattern = "[?&]" + key + "=([^&#]*)";
|
||||
var regex = new RegExp(pattern);
|
||||
var url = unescape(window.location.href);
|
||||
var results = regex.exec(url);
|
||||
if (results === null) {
|
||||
return null;
|
||||
} else {
|
||||
return results[1];
|
||||
}
|
||||
})(jQuery);
|
||||
}
|
||||
|
||||
</script>
|
|
@ -1,3 +1,3 @@
|
|||
/godmode/servers/recorn_script.php
|
||||
/godmode/servers/recon_script.php
|
||||
/godmode/servers/manage_recontask_form.php
|
||||
/godmode/servers/manage_recontask.php
|
|
@ -1,8 +1,24 @@
|
|||
START TRANSACTION;
|
||||
|
||||
-- ----------------------------------------------------------------------
|
||||
-- Add column in table `tagent_custom_fields`
|
||||
-- ----------------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `tnetwork_matrix` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`source` varchar(60) default '',
|
||||
`destination` varchar(60) default '',
|
||||
`utimestamp` bigint(20) default 0,
|
||||
`bytes` int(18) unsigned default 0,
|
||||
`pkts` int(18) unsigned default 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE (`source`, `destination`, `utimestamp`)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
ALTER TABLE `treport_content` ADD COLUMN `show_extended_events` tinyint(1) default '0';
|
||||
|
||||
UPDATE `treport_content` SET type="netflow_summary" WHERE type="netflow_pie" OR type="netflow_statistics";
|
||||
|
||||
UPDATE `tnetflow_filter` SET aggregate="dstip" WHERE aggregate NOT IN ("dstip", "srcip", "dstport", "srcport");
|
||||
|
||||
ALTER TABLE tagent_custom_fields ADD COLUMN `combo_values` VARCHAR(255) DEFAULT '';
|
||||
|
||||
ALTER TABLE `trecon_task` ADD COLUMN `summary` text;
|
||||
|
||||
COMMIT;
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE `tnetwork_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE `tlocal_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||
|
||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
||||
|
||||
UPDATE tuser_task SET parameters = 'a:5:{i:0;a:6:{s:11:\"description\";s:28:\"Report pending to be created\";s:5:\"table\";s:7:\"treport\";s:8:\"field_id\";s:9:\"id_report\";s:10:\"field_name\";s:4:\"name\";s:4:\"type\";s:3:\"int\";s:9:\"acl_group\";s:8:\"id_group\";}i:1;a:2:{s:11:\"description\";s:46:\"Send to email addresses (separated by a comma)\";s:4:\"type\";s:4:\"text\";}i:2;a:2:{s:11:\"description\";s:7:\"Subject\";s:8:\"optional\";i:1;}i:3;a:3:{s:11:\"description\";s:7:\"Message\";s:4:\"type\";s:4:\"text\";s:8:\"optional\";i:1;}i:4;a:2:{s:11:\"description\";s:11:\"Report Type\";s:4:\"type\";s:11:\"report_type\";}}' where function_name = "cron_task_generate_report";
|
||||
|
||||
ALTER TABLE `treport_content` ADD COLUMN `total_time` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_failed` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_in_ok_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_in_unknown_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_of_not_initialized_module` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_of_downtime` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `total_checks` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `checks_failed` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `checks_in_ok_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
||||
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `total_time` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_failed` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_in_ok_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_in_unknown_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_of_not_initialized_module` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_of_downtime` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `total_checks` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `checks_failed` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `checks_in_ok_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
||||
|
||||
COMMIT;
|
|
@ -139,7 +139,7 @@ function get_logs_size($file)
|
|||
function get_status_logs($path)
|
||||
{
|
||||
$status_server_log = '';
|
||||
$size_server_log = number_format(get_logs_size($path));
|
||||
$size_server_log = get_logs_size($path);
|
||||
if ($size_server_log <= 1048576) {
|
||||
$status_server_log = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   You have less than 10 MB of logs</a>";
|
||||
} else {
|
||||
|
@ -157,9 +157,9 @@ function percentage_modules_per_agent()
|
|||
$total_modules = db_get_value_sql('SELECT count(*) FROM tagente_modulo');
|
||||
$average_modules_per_agent = ($total_modules / $total_agents);
|
||||
if ($average_modules_per_agent <= 40) {
|
||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The average of modules per agent is less than 40 percent</a>";
|
||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The average of modules per agent is less than 40</a>";
|
||||
} else {
|
||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>  The average of modules per agent is more than 40 percent. You can have performance problems</a>";
|
||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>  The average of modules per agent is more than 40. You can have performance problems</a>";
|
||||
}
|
||||
|
||||
return $status_average_modules;
|
||||
|
@ -202,9 +202,9 @@ function interval_average_of_network_modules()
|
|||
$average_time = ((int) $total_module_interval_time / $total_network_modules);
|
||||
|
||||
if ($average_time < 180) {
|
||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   The system has a lot of load and a very fine configuration is required</a>";
|
||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   The system has a lot of load (average time $average_time) and a very fine configuration is required</a>";
|
||||
} else {
|
||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The system has an acceptable charge</a>";
|
||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The system has an acceptable charge (average time $average_time) </a>";
|
||||
}
|
||||
|
||||
if ($average_time == 0) {
|
||||
|
@ -274,6 +274,7 @@ if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
|
|||
}
|
||||
|
||||
$path_server_logs = '/log/pandora/pandora_server.log';
|
||||
$path_err_logs = '/log/pandora/pandora_server.error';
|
||||
$path_console_logs = '/www/html/pandora_console/pandora_console.log';
|
||||
$innodb_log_file_size_min_rec_value = '64M';
|
||||
$innodb_log_buffer_size_min_rec_value = '16M';
|
||||
|
@ -710,6 +711,8 @@ render_info_data(
|
|||
|
||||
render_row(number_format((get_logs_size($path_server_logs) / 1048576), 3).'M', 'Size server logs (current value)');
|
||||
render_row(get_status_logs($path_server_logs), 'Status server logs');
|
||||
render_row(number_format((get_logs_size($path_err_logs) / 1048576), 3).'M', 'Size error logs (current value)');
|
||||
render_row(get_status_logs($path_err_logs), 'Status error logs');
|
||||
render_row(number_format((get_logs_size($path_console_logs) / 1048576), 3).'M', 'Size console logs (current value)');
|
||||
render_row(get_status_logs($path_console_logs), 'Status console logs');
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ CREATE TABLE IF NOT EXISTS `tlocal_component` (
|
|||
|
||||
ALTER TABLE `tlocal_component` ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
||||
ALTER TABLE `tlocal_component` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE `tlocal_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tpolicy_modules`
|
||||
|
@ -136,6 +137,7 @@ CREATE TABLE IF NOT EXISTS `tpolicy_modules` (
|
|||
|
||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tpolicies`
|
||||
|
@ -764,6 +766,18 @@ ALTER TABLE treport_content_template ADD COLUMN `lapse_calc` tinyint(1) default
|
|||
ALTER TABLE treport_content_template ADD COLUMN `lapse` int(11) default '300';
|
||||
ALTER TABLE treport_content_template ADD COLUMN `visual_format` tinyint(1) default '0';
|
||||
ALTER TABLE treport_content_template ADD COLUMN `hide_no_data` tinyint(1) default '0';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `total_time` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_failed` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_in_ok_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_in_unknown_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_of_not_initialized_module` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `time_of_downtime` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `total_checks` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `checks_failed` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `checks_in_ok_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `treport_content_sla_com_temp` (treport_content_sla_combined_template)
|
||||
|
@ -1150,6 +1164,9 @@ ALTER TABLE tagente_estado MODIFY `status_changes` tinyint(4) unsigned default 0
|
|||
ALTER TABLE tagente_estado CHANGE `last_known_status` `known_status` tinyint(4) default 0;
|
||||
ALTER TABLE tagente_estado ADD COLUMN `last_known_status` tinyint(4) default 0;
|
||||
ALTER TABLE tagente_estado ADD COLUMN last_unknown_update bigint(20) NOT NULL default 0;
|
||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `talert_actions`
|
||||
|
@ -1199,13 +1216,13 @@ ALTER TABLE titem MODIFY `source_data` int(10) unsigned;
|
|||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 26);
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 27);
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
|
||||
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
||||
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '733');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '734');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
|
@ -1260,6 +1277,10 @@ ALTER TABLE tagente_modulo ADD COLUMN `dynamic_next` bigint(20) NOT NULL default
|
|||
ALTER TABLE tagente_modulo ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE tagente_modulo ADD COLUMN `parent_module_id` int(10) unsigned NOT NULL default 0;
|
||||
ALTER TABLE `tagente_modulo` ADD COLUMN `cps` int NOT NULL default 0;
|
||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tagente_datos`
|
||||
|
@ -1279,6 +1300,7 @@ ALTER TABLE tnetwork_component ADD COLUMN `dynamic_max` int(4) default '0';
|
|||
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_min` int(4) default '0';
|
||||
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
||||
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE `tnetwork_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tagente`
|
||||
|
@ -1355,6 +1377,7 @@ ALTER TABLE tgraph ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '
|
|||
-- Table `tnetflow_filter`
|
||||
-- ---------------------------------------------------------------------
|
||||
ALTER TABLE tnetflow_filter ADD COLUMN `router_ip` TEXT NOT NULL DEFAULT "";
|
||||
UPDATE `tnetflow_filter` SET aggregate="dstip" WHERE aggregate NOT IN ("dstip", "srcip", "dstport", "srcport");
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `treport_custom_sql`
|
||||
|
@ -1376,6 +1399,20 @@ ALTER TABLE treport_content ADD COLUMN `lapse` int(11) default '300';
|
|||
ALTER TABLE treport_content ADD COLUMN `visual_format` tinyint(1) default '0';
|
||||
ALTER TABLE treport_content ADD COLUMN `hide_no_data` tinyint(1) default '0';
|
||||
ALTER TABLE treport_content ADD COLUMN `recursion` tinyint(1) default NULL;
|
||||
ALTER TABLE treport_content ADD COLUMN `show_extended_events` tinyint(1) default '0';
|
||||
UPDATE `treport_content` SET type="netflow_summary" WHERE type="netflow_pie" OR type="netflow_statistics";
|
||||
ALTER TABLE `treport_content` ADD COLUMN `total_time` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_failed` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_in_ok_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_in_unknown_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_of_not_initialized_module` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `time_of_downtime` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `total_checks` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `checks_failed` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `checks_in_ok_status` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
||||
ALTER TABLE `treport_content` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tmodule_relationship`
|
||||
|
@ -1410,6 +1447,7 @@ ALTER TABLE trecon_task ADD `vlan_enabled` int(2) unsigned default '0';
|
|||
ALTER TABLE trecon_task ADD `wmi_enabled` tinyint(1) unsigned DEFAULT '0';
|
||||
ALTER TABLE trecon_task ADD `auth_strings` text;
|
||||
ALTER TABLE trecon_task ADD `autoconfiguration_enabled` tinyint(1) unsigned default '0';
|
||||
ALTER TABLE trecon_task ADD `summary` text;
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `twidget` AND Table `twidget_dashboard`
|
||||
|
@ -1912,6 +1950,20 @@ CREATE TABLE `tgis_map_layer_groups` (
|
|||
CONSTRAINT `tgis_map_layer_groups_ibfk_3` FOREIGN KEY (`agent_id`) REFERENCES `tagente` (`id_agente`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tnetwork_matrix`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `tnetwork_matrix` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`source` varchar(60) default '',
|
||||
`destination` varchar(60) default '',
|
||||
`utimestamp` bigint(20) default 0,
|
||||
`bytes` int(18) unsigned default 0,
|
||||
`pkts` int(18) unsigned default 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE (`source`, `destination`, `utimestamp`)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tnotification_source`
|
||||
-- -----------------------------------------------------
|
||||
|
@ -2040,3 +2092,8 @@ INSERT INTO `trecon_script` (`name`,`description`,`script`,`macros`) VALUES ('Di
|
|||
-- Add column in table `tagent_custom_fields`
|
||||
-- ----------------------------------------------------------------------
|
||||
ALTER TABLE tagent_custom_fields ADD COLUMN `combo_values` VARCHAR(255) DEFAULT '';
|
||||
|
||||
-- ----------------------------------------------------------------------
|
||||
-- Update table `tuser_task`
|
||||
-- ----------------------------------------------------------------------
|
||||
UPDATE tuser_task set parameters = 'a:5:{i:0;a:6:{s:11:\"description\";s:28:\"Report pending to be created\";s:5:\"table\";s:7:\"treport\";s:8:\"field_id\";s:9:\"id_report\";s:10:\"field_name\";s:4:\"name\";s:4:\"type\";s:3:\"int\";s:9:\"acl_group\";s:8:\"id_group\";}i:1;a:2:{s:11:\"description\";s:46:\"Send to email addresses (separated by a comma)\";s:4:\"type\";s:4:\"text\";}i:2;a:2:{s:11:\"description\";s:7:\"Subject\";s:8:\"optional\";i:1;}i:3;a:3:{s:11:\"description\";s:7:\"Message\";s:4:\"type\";s:4:\"text\";s:8:\"optional\";i:1;}i:4;a:2:{s:11:\"description\";s:11:\"Report Type\";s:4:\"type\";s:11:\"report_type\";}}' where function_name = "cron_task_generate_report";
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/icono_grande_reconserver.png', true, ['title' => __('Collections')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Collections'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Collections'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"A file collection is a group of files (e.g. scripts or executables) which are
|
||||
|
|
|
@ -24,7 +24,7 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no custom
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Custom Fields')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Custom Fields'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Custom Fields'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Custom fields are an easy way to personalized agent's information.
|
||||
|
|
|
@ -24,7 +24,7 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no custom
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_custom_reporting.png', true, ['title' => __('Custom Graphs')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Custom Graph'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Custom Graph'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Graphs are designed to show the data collected by %s in a temporary scale defined by the user.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Fields Manager')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Fields Manager'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Fields Manager'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Custom fields are an easy way to personalized agent's information.
|
||||
|
|
|
@ -28,7 +28,7 @@ if ($incident_w || $incident_m) {
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_incidencia.png', true, ['title' => __('Incidents')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Incidents'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Incidents'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Besides receiving and processing data to monitor systems or applications,
|
||||
|
|
|
@ -31,7 +31,7 @@ if ($vconsoles_write || $vconsoles_manage) {
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_visualconsole.png', true, ['title' => __('Visual Console')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Visual Console'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Visual Console'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
'%s allows users to create visual maps on which each user is able to create his or her '.'own monitoring map. The new visual console editor is much more practical, although the prior '."visual console editor had its advantages. On the new visual console, we've been successful in "."imitating the sensation and touch of a drawing application like GIMP. We've also simplified the "."editor by dividing it into several subject-divided tabs named 'Data', 'Preview', 'Wizard', 'List of "."Elements' and 'Editor'. The items the %s Visual Map was designed to handle are "."'static images', 'percentage bars', 'module graphs' and 'simple values'.",
|
||||
|
|
|
@ -26,7 +26,7 @@ $networkmap_types = networkmap_get_types($strict_user);
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Network Map')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Network Map'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Network Map'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
'There is also an open-source version of the network map.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_visualconsole.png', true, ['title' => __('Planned Downtime')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Planned Downtime'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Planned Downtime'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"%s contains a scheduled downtime management system.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Discovery server')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Discovery Task'); ?><p id="description_task">
|
||||
<h3> <?php echo __('Create Discovery Task'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
'Discovery Task are used to find new elements in the network.
|
||||
|
|
|
@ -25,7 +25,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_servicios.png', true, ['title' => __('Services')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Services'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Services'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"A service is a way to group your IT resources based on their functionalities.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('SNMP Filter')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create SNMP Filter'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create SNMP Filter'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Some systems receive a high number of traps.
|
||||
|
|
|
@ -22,7 +22,7 @@ ui_require_css_file('firts_task');
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_gestiondetags.png', true, ['title' => __('Tags')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Tags'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Tags'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
"Access to modules can be configured by a tagging system.
|
||||
|
|
|
@ -28,7 +28,7 @@ if ($networkmaps_write || $networkmaps_manage) {
|
|||
<?php echo html_print_image('images/firts_task/icono_grande_topology.png', true, ['title' => __('Transactions')]); ?>
|
||||
</div>
|
||||
<div class="text_task">
|
||||
<h3> <?php echo __('Create Transactions'); ?> <p id="description_task">
|
||||
<h3> <?php echo __('Create Transactions'); ?></h3><p id="description_task">
|
||||
<?php
|
||||
echo __(
|
||||
'The new transactional server allows you to execute tasks dependent on the others following a user-defined design. This means that it is possible to coordinate several executions to check a target at a given time.
|
||||
|
|
|
@ -44,8 +44,6 @@ if ($current_package == 0) {
|
|||
echo sprintf(__('%s %s - Build %s - MR %s', get_product_name(), $pandora_version, $build_package_version, $config['MR']));
|
||||
|
||||
echo '</a> ';
|
||||
echo '<a class="footer">'.__('Page generated at').' '.date($config['date_format']);
|
||||
echo '</a><br /><span>® '.get_copyright_notice().'</span>';
|
||||
|
||||
if (isset($config['debug'])) {
|
||||
$cache_info = [];
|
||||
|
|
|
@ -18,9 +18,13 @@ require_once 'include/functions_notifications.php';
|
|||
// Global errors/warnings checking.
|
||||
config_check();
|
||||
|
||||
?>
|
||||
|
||||
<div id="header_table">
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo '<div id="header_table" class="header_table_classic">';
|
||||
} else {
|
||||
echo '<div id="header_table" class="header_table_collapsed">';
|
||||
}
|
||||
?>
|
||||
<div id="header_table_inner">
|
||||
<?php
|
||||
// ======= Notifications Discovery ===============================================
|
||||
|
@ -82,7 +86,7 @@ require_once 'include/functions_notifications.php';
|
|||
$header_chat .= '</a></span></div>';
|
||||
|
||||
|
||||
// Search
|
||||
// Search.
|
||||
$acl_head_search = true;
|
||||
if ($config['acl_enterprise'] == 1 && !users_is_admin()) {
|
||||
$acl_head_search = db_get_sql(
|
||||
|
@ -94,7 +98,7 @@ require_once 'include/functions_notifications.php';
|
|||
}
|
||||
|
||||
if ($acl_head_search) {
|
||||
// Search bar
|
||||
// Search bar.
|
||||
$search_bar = '<form method="get" style="display: inline;" name="quicksearch" action="">';
|
||||
if (!isset($config['search_keywords'])) {
|
||||
$search_bar .= '<script type="text/javascript"> var fieldKeyWordEmpty = true; </script>';
|
||||
|
@ -116,15 +120,13 @@ require_once 'include/functions_notifications.php';
|
|||
}
|
||||
|
||||
$search_bar .= 'onfocus="javascript: if (fieldKeyWordEmpty) $(\'#keywords\').val(\'\');"
|
||||
onkeyup="javascript: fieldKeyWordEmpty = false;"
|
||||
style="margin-top:5px;" class="search_input" />';
|
||||
onkeyup="javascript: fieldKeyWordEmpty = false;" class="search_input" />';
|
||||
|
||||
// $search_bar .= 'onClick="javascript: document.quicksearch.submit()"';
|
||||
$search_bar .= "<input type='hidden' name='head_search_keywords' value='abc' />";
|
||||
$search_bar .= '</form>';
|
||||
|
||||
$header_searchbar = '<div id="header_searchbar">'.ui_print_help_tip(__('Blank characters are used as AND conditions'), true);
|
||||
$header_searchbar .= $search_bar.'</div>';
|
||||
$header_searchbar = '<div id="header_searchbar">'.$search_bar.'</div>';
|
||||
}
|
||||
|
||||
|
||||
|
@ -145,10 +147,19 @@ require_once 'include/functions_notifications.php';
|
|||
$_GET['refr'] = null;
|
||||
}
|
||||
|
||||
$select = db_process_sql("SELECT autorefresh_white_list,time_autorefresh FROM tusuario WHERE id_user = '".$config['id_user']."'");
|
||||
$autorefresh_list = json_decode($select[0]['autorefresh_white_list']);
|
||||
$select = db_process_sql(
|
||||
"SELECT autorefresh_white_list,time_autorefresh
|
||||
FROM tusuario
|
||||
WHERE id_user = '".$config['id_user']."'"
|
||||
);
|
||||
|
||||
if ($autorefresh_list !== null && array_search($_GET['sec2'], $autorefresh_list) !== false) {
|
||||
$autorefresh_list = json_decode(
|
||||
$select[0]['autorefresh_white_list']
|
||||
);
|
||||
|
||||
if ($autorefresh_list !== null
|
||||
&& array_search($_GET['sec2'], $autorefresh_list) !== false
|
||||
) {
|
||||
$do_refresh = true;
|
||||
if ($_GET['sec2'] == 'operation/agentes/pandora_networkmap') {
|
||||
if ((!isset($_GET['tab'])) || ($_GET['tab'] != 'view')) {
|
||||
|
@ -157,22 +168,57 @@ require_once 'include/functions_notifications.php';
|
|||
}
|
||||
|
||||
if ($do_refresh) {
|
||||
$autorefresh_img = html_print_image('images/header_refresh_gray.png', true, ['class' => 'bot', 'alt' => 'lightning', 'title' => __('Configure autorefresh')]);
|
||||
$autorefresh_img = html_print_image(
|
||||
'images/header_refresh_gray.png',
|
||||
true,
|
||||
[
|
||||
'class' => 'bot',
|
||||
'alt' => 'lightning',
|
||||
'title' => __('Configure autorefresh'),
|
||||
]
|
||||
);
|
||||
|
||||
if ($_GET['refr']) {
|
||||
$autorefresh_txt .= ' (<span id="refrcounter">'.date('i:s', $config['refr']).'</span>)';
|
||||
if ((isset($select[0]['time_autorefresh']) === true)
|
||||
&& $select[0]['time_autorefresh'] !== 0
|
||||
&& $config['refr'] === null
|
||||
) {
|
||||
$config['refr'] = $select[0]['time_autorefresh'];
|
||||
$autorefresh_txt .= ' (<span id="refrcounter">';
|
||||
$autorefresh_txt .= date(
|
||||
'i:s',
|
||||
$config['refr']
|
||||
);
|
||||
$autorefresh_txt .= '</span>)';
|
||||
} else if ($_GET['refr']) {
|
||||
$autorefresh_txt .= ' (<span id="refrcounter">';
|
||||
$autorefresh_txt .= date('i:s', $config['refr']);
|
||||
$autorefresh_txt .= '</span>)';
|
||||
}
|
||||
|
||||
$ignored_params['refr'] = '';
|
||||
$values = get_refresh_time_array();
|
||||
|
||||
$autorefresh_additional = '<span id="combo_refr" style="display: none;">';
|
||||
$autorefresh_additional .= html_print_select($values, 'ref', '', '', __('Select'), '0', true, false, false);
|
||||
$autorefresh_additional .= html_print_select(
|
||||
$values,
|
||||
'ref',
|
||||
'',
|
||||
'',
|
||||
__('Select'),
|
||||
'0',
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
$autorefresh_additional .= '</span>';
|
||||
unset($values);
|
||||
|
||||
$autorefresh_link_open_img = '<a class="white autorefresh" href="'.ui_get_url_refresh($ignored_params).'">';
|
||||
|
||||
if ($_GET['refr']) {
|
||||
if ($_GET['refr']
|
||||
|| ((isset($select[0]['time_autorefresh']) === true)
|
||||
&& $select[0]['time_autorefresh'] !== 0)
|
||||
) {
|
||||
$autorefresh_link_open_txt = '<a class="autorefresh autorefresh_txt" href="'.ui_get_url_refresh($ignored_params).'">';
|
||||
} else {
|
||||
$autorefresh_link_open_txt = '<a>';
|
||||
|
@ -192,7 +238,15 @@ require_once 'include/functions_notifications.php';
|
|||
$display_counter = 'display:none';
|
||||
}
|
||||
} else {
|
||||
$autorefresh_img = html_print_image('images/header_refresh_disabled_gray.png', true, ['class' => 'bot autorefresh_disabled', 'alt' => 'lightning', 'title' => __('Disabled autorefresh')]);
|
||||
$autorefresh_img = html_print_image(
|
||||
'images/header_refresh_disabled_gray.png',
|
||||
true,
|
||||
[
|
||||
'class' => 'bot autorefresh_disabled',
|
||||
'alt' => 'lightning',
|
||||
'title' => __('Disabled autorefresh'),
|
||||
]
|
||||
);
|
||||
|
||||
$ignored_params['refr'] = false;
|
||||
|
||||
|
@ -203,56 +257,80 @@ require_once 'include/functions_notifications.php';
|
|||
$display_counter = 'display:none';
|
||||
}
|
||||
|
||||
$header_autorefresh = '<div id="header_autorefresh">'.$autorefresh_link_open_img.$autorefresh_img.$autorefresh_link_close.'</div>';
|
||||
$header_autorefresh_counter = '<div id="header_autorefresh_counter" style="'.$display_counter.'">'.$autorefresh_link_open_txt.$autorefresh_txt.$autorefresh_link_close.$autorefresh_additional.'</div>';
|
||||
$header_autorefresh = '<div id="header_autorefresh">';
|
||||
$header_autorefresh .= $autorefresh_link_open_img;
|
||||
$header_autorefresh .= $autorefresh_img;
|
||||
$header_autorefresh .= $autorefresh_link_close;
|
||||
$header_autorefresh .= '</div>';
|
||||
|
||||
$header_autorefresh_counter = '<div id="header_autorefresh_counter" style="'.$display_counter.'">';
|
||||
$header_autorefresh_counter .= $autorefresh_link_open_txt;
|
||||
$header_autorefresh_counter .= $autorefresh_txt;
|
||||
$header_autorefresh_counter .= $autorefresh_link_close;
|
||||
$header_autorefresh_counter .= $autorefresh_additional;
|
||||
$header_autorefresh_counter .= '</div>';
|
||||
|
||||
|
||||
// Qr.
|
||||
if ($config['show_qr_code_header'] == 0) {
|
||||
$show_qr_code_header = 'display: none;';
|
||||
// Support.
|
||||
if (defined('PANDORA_ENTERPRISE')) {
|
||||
$header_support_link = 'https://support.artica.es/';
|
||||
} else {
|
||||
$show_qr_code_header = 'display: inline;';
|
||||
$header_support_link = 'https://pandorafms.com/forums/';
|
||||
}
|
||||
|
||||
$header_qr = '<div id="header_qr" style="'.$show_qr_code_header.'"><div id="qr_code_container"><a href="javascript: show_dialog_qrcode();">'.html_print_image(
|
||||
'images/qrcode_icon_gray.png',
|
||||
true,
|
||||
[
|
||||
'alt' => __('QR Code of the page'),
|
||||
'title' => __('QR Code of the page'),
|
||||
]
|
||||
).'</a></div></div>';
|
||||
$header_support = '<div id="header_support">';
|
||||
$header_support .= '<a href="'.$header_support_link.'" target="_blank">';
|
||||
$header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_support .= '</a></div>';
|
||||
|
||||
// Documentation.
|
||||
$header_docu = '<div id="header_support">';
|
||||
$header_docu .= '<a href="https://wiki.pandorafms.com/index.php?title=Main_Page" target="_blank">';
|
||||
$header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_docu .= '</a></div>';
|
||||
|
||||
|
||||
echo "<div style='display: none;' id='qrcode_container' title='".__('QR code of the page')."'>";
|
||||
echo "<div id='qrcode_container_image'></div>";
|
||||
echo '</div>';
|
||||
?>
|
||||
<script type='text/javascript'>
|
||||
$(document).ready(function() {
|
||||
$( "#qrcode_container" ).dialog({
|
||||
autoOpen: false,
|
||||
modal: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
// User.
|
||||
if (is_user_admin($config['id_user']) == 1) {
|
||||
$header_user = html_print_image('images/header_user_admin_green.png', true, ['title' => __('Edit my user'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_user = html_print_image(
|
||||
'images/header_user_admin_green.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Edit my user'),
|
||||
'class' => 'bot',
|
||||
'alt' => 'user',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$header_user = html_print_image('images/header_user_green.png', true, ['title' => __('Edit my user'), 'class' => 'bot', 'alt' => 'user']);
|
||||
$header_user = html_print_image(
|
||||
'images/header_user_green.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Edit my user'),
|
||||
'class' => 'bot',
|
||||
'alt' => 'user',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$header_user = '<div id="header_user"><a href="index.php?sec=workspace&sec2=operation/users/user_edit">'.$header_user.'<span> ('.$config['id_user'].')</span></a></div>';
|
||||
|
||||
// Logout.
|
||||
$header_logout = '<div id="header_logout"><a class="white" href="'.ui_get_full_url('index.php?bye=bye').'">';
|
||||
$header_logout .= html_print_image('images/header_logout_gray.png', true, ['alt' => __('Logout'), 'class' => 'bot', 'title' => __('Logout')]);
|
||||
$header_logout .= html_print_image(
|
||||
'images/header_logout_gray.png',
|
||||
true,
|
||||
[
|
||||
'alt' => __('Logout'),
|
||||
'class' => 'bot',
|
||||
'title' => __('Logout'),
|
||||
]
|
||||
);
|
||||
$header_logout .= '</a></div>';
|
||||
|
||||
echo '<div class="header_left">'.$header_autorefresh, $header_autorefresh_counter, $header_qr, $header_chat.'</div>
|
||||
<div class="header_center">'.$header_searchbar, $header_discovery, $servers_list.'</div>
|
||||
<div class="header_right">'.$header_user, $header_logout.'</div>';
|
||||
echo '<div class="header_left"><span class="header_title">'.$config['custom_title_header'].'</span><span class="header_subtitle">'.$config['custom_subtitle_header'].'</span></div>
|
||||
<div class="header_center">'.$header_searchbar.'</div>
|
||||
<div class="header_right">'.$header_chat, $header_autorefresh, $header_autorefresh_counter, $header_discovery, $servers_list, $header_support, $header_docu, $header_user, $header_logout.'</div>';
|
||||
?>
|
||||
</div> <!-- Closes #table_header_inner -->
|
||||
</div> <!-- Closes #table_header -->
|
||||
|
@ -490,7 +568,12 @@ require_once 'include/functions_notifications.php';
|
|||
);
|
||||
|
||||
<?php
|
||||
if (($autorefresh_list !== null) && (array_search($_GET['sec2'], $autorefresh_list) !== false) && (!isset($_GET['refr']))) {
|
||||
if (($autorefresh_list !== null)
|
||||
&& (array_search(
|
||||
$_GET['sec2'],
|
||||
$autorefresh_list
|
||||
) !== false) && (!isset($_GET['refr']))
|
||||
) {
|
||||
$do_refresh = true;
|
||||
if ($_GET['sec2'] == 'operation/agentes/pandora_networkmap') {
|
||||
if ((!isset($_GET['tab'])) || ($_GET['tab'] != 'view')) {
|
||||
|
@ -503,31 +586,12 @@ require_once 'include/functions_notifications.php';
|
|||
if ($_GET['sec2'] == 'enterprise/dashboard/main_dashboard' && $new_dashboard) {
|
||||
$do_refresh = false;
|
||||
}
|
||||
|
||||
if ($do_refresh) {
|
||||
?>
|
||||
$("a.autorefresh_txt").toggle ();
|
||||
$("#combo_refr").toggle ();
|
||||
href = $("a.autorefresh").attr ("href");
|
||||
<?php
|
||||
if ($select[0]['time_autorefresh']) {
|
||||
?>
|
||||
var refresh = '<?php echo $select[0]['time_autorefresh']; ?>';
|
||||
$(document).attr ("location", href + refresh);
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
if (fixed_header) {
|
||||
$('div#head').addClass('fixed_header');
|
||||
$('div#page')
|
||||
.css('padding-top', $('div#head').innerHeight() + 'px')
|
||||
.css('position', 'relative');
|
||||
$('div#main').css('padding-top', $('div#head').innerHeight() + 'px');
|
||||
}
|
||||
|
||||
check_new_chats_icon('icon_new_messages_chat');
|
||||
|
@ -547,14 +611,14 @@ require_once 'include/functions_notifications.php';
|
|||
blinkpubli();
|
||||
|
||||
<?php
|
||||
if ($_GET['refr']) {
|
||||
if ($_GET['refr'] || $do_refresh === true) {
|
||||
?>
|
||||
$("#header_autorefresh").css('padding-right', '5px');
|
||||
var refr_time = <?php echo (int) get_parameter('refr', 0); ?>;
|
||||
var t = new Date();
|
||||
t.setTime (t.getTime () +
|
||||
parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
||||
$("#refrcounter").countdown ({until: t,
|
||||
t.setTime (t.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
||||
$("#refrcounter").countdown ({
|
||||
until: t,
|
||||
layout: '%M%nn%M:%S%nn%S',
|
||||
labels: ['', '', '', '', '', '', ''],
|
||||
onExpiry: function () {
|
||||
|
|
|
@ -305,12 +305,12 @@ if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
|||
echo '<div class ="img_banner_login">';
|
||||
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
||||
if (isset($config['custom_splash_login'])) {
|
||||
html_print_image('enterprise/images/custom_splash_login/'.$config['custom_splash_login'], false, [ 'alt' => 'splash', 'border' => 0, 'title' => $splash_title], false, true);
|
||||
html_print_image('enterprise/images/custom_splash_login/'.$config['custom_splash_login'], false, [ 'alt' => 'splash', 'border' => 0], false, true);
|
||||
} else {
|
||||
html_print_image('enterprise/images/custom_splash_login/splash_image_default.png', false, ['alt' => 'logo', 'border' => 0, 'title' => $splash_title], false, true);
|
||||
html_print_image('enterprise/images/custom_splash_login/splash_image_default.png', false, ['alt' => 'logo', 'border' => 0], false, true);
|
||||
}
|
||||
} else {
|
||||
html_print_image('images/splash_image_default.png', false, ['alt' => 'logo', 'border' => 0, 'title' => $splash_title], false, true);
|
||||
html_print_image('images/splash_image_default.png', false, ['alt' => 'logo', 'border' => 0], false, true);
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
|
|
|
@ -1,26 +1,39 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to self monitor Pandora FMS Console
|
||||
*
|
||||
* @category Main page
|
||||
* @package Pandora FMS
|
||||
* @subpackage Introduction
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* 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 for version 2.
|
||||
* 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.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// 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
|
||||
// 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.
|
||||
// Config functions.
|
||||
require_once 'include/config.php';
|
||||
|
||||
// This solves problems in enterprise load
|
||||
// This solves problems in enterprise load.
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
/*
|
||||
Call all extensions login function */
|
||||
// extensions_call_login_function ();
|
||||
require_once 'include/functions_reporting.php';
|
||||
require_once 'include/functions_tactical.php';
|
||||
require_once $config['homedir'].'/include/functions_graph.php';
|
||||
|
@ -29,8 +42,18 @@ if (tags_has_user_acl_tags()) {
|
|||
ui_print_tags_warning();
|
||||
}
|
||||
|
||||
$user_strict = (bool) db_get_value('strict_acl', 'tusuario', 'id_user', $config['id_user']);
|
||||
$all_data = tactical_status_modules_agents($config['id_user'], $user_strict, 'AR', $user_strict);
|
||||
$user_strict = (bool) db_get_value(
|
||||
'strict_acl',
|
||||
'tusuario',
|
||||
'id_user',
|
||||
$config['id_user']
|
||||
);
|
||||
$all_data = tactical_status_modules_agents(
|
||||
$config['id_user'],
|
||||
$user_strict,
|
||||
'AR',
|
||||
$user_strict
|
||||
);
|
||||
$data = [];
|
||||
|
||||
$data['monitor_not_init'] = (int) $all_data['_monitors_not_init_'];
|
||||
|
@ -79,6 +102,8 @@ if (!empty($all_data)) {
|
|||
|
||||
$data['server_sanity'] = format_numeric((100 - $data['module_sanity']), 1);
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<table border="0" width="100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
|
@ -88,7 +113,7 @@ if (!empty($all_data)) {
|
|||
|
||||
<?php
|
||||
//
|
||||
// Overview Table
|
||||
// Overview Table.
|
||||
//
|
||||
$table = new stdClass();
|
||||
$table->class = 'databox';
|
||||
|
@ -101,12 +126,12 @@ if (!empty($all_data)) {
|
|||
$table->head[0] = '<span>'.__('%s Overview', get_product_name()).'</span>';
|
||||
$table->head_colspan[0] = 4;
|
||||
|
||||
// Indicators
|
||||
// Indicators.
|
||||
$tdata = [];
|
||||
$stats = reporting_get_stats_indicators($data, 120, 10, false);
|
||||
$status = '<table class="status_tactical">';
|
||||
foreach ($stats as $stat) {
|
||||
$status .= '<tr><td><b>'.$stat['title'].'</b>'.'</td><td>'.$stat['graph'].'</td></tr>';
|
||||
$status .= '<tr><td><b>'.$stat['title'].'</b></td><td>'.$stat['graph'].'</td></tr>';
|
||||
}
|
||||
|
||||
$status .= '</table>';
|
||||
|
@ -115,25 +140,25 @@ if (!empty($all_data)) {
|
|||
|
||||
$table->data[] = $tdata;
|
||||
|
||||
// Alerts
|
||||
// Alerts.
|
||||
$tdata = [];
|
||||
$tdata[0] = reporting_get_stats_alerts($data);
|
||||
$table->rowclass[] = '';
|
||||
$table->data[] = $tdata;
|
||||
|
||||
// Modules by status
|
||||
// Modules by status.
|
||||
$tdata = [];
|
||||
$tdata[0] = reporting_get_stats_modules_status($data, 180, 100);
|
||||
$table->rowclass[] = '';
|
||||
$table->data[] = $tdata;
|
||||
|
||||
// Total agents and modules
|
||||
// Total agents and modules.
|
||||
$tdata = [];
|
||||
$tdata[0] = reporting_get_stats_agents_monitors($data);
|
||||
$table->rowclass[] = '';
|
||||
$table->data[] = $tdata;
|
||||
|
||||
// Users
|
||||
// Users.
|
||||
if (users_is_admin()) {
|
||||
$tdata = [];
|
||||
$tdata[0] = reporting_get_stats_users($data);
|
||||
|
@ -160,7 +185,7 @@ if (!empty($all_data)) {
|
|||
|
||||
|
||||
if (!empty($news)) {
|
||||
// NEWS BOARD/////////////////////////////
|
||||
// NEWS BOARD.
|
||||
echo '<div id="news_board">';
|
||||
|
||||
echo '<table cellpadding="0" width=100% cellspacing="0" class="databox filters">';
|
||||
|
@ -184,20 +209,72 @@ if (!empty($all_data)) {
|
|||
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
// News board
|
||||
// News board.
|
||||
echo '<br><br>';
|
||||
|
||||
// END OF NEWS BOARD/////////////////////////////
|
||||
// END OF NEWS BOARD.
|
||||
}
|
||||
|
||||
// LAST ACTIVITY/////////////////////////////
|
||||
// Show last activity from this user
|
||||
$nots = messages_get_overview('utimestamp', 'DESC', false);
|
||||
if (!empty($nots)) {
|
||||
// Notifications board.
|
||||
echo '<div id="notifications_board">';
|
||||
|
||||
echo '<table cellpadding="0" width=100% cellspacing="0" class="databox filters">';
|
||||
echo '<tr><th style="text-align:center;"><span >'.__('Pending notifications').'</span></th></tr>';
|
||||
if ($config['prominent_time'] == 'timestamp') {
|
||||
$comparation_suffix = '';
|
||||
} else {
|
||||
$comparation_suffix = __('ago');
|
||||
}
|
||||
|
||||
foreach ($nots as $msg) {
|
||||
$conversation = io_safe_output(
|
||||
messages_get_conversation($msg)
|
||||
);
|
||||
|
||||
if (is_array($conversation)) {
|
||||
$text = array_pop($conversation)['message'];
|
||||
} else {
|
||||
// Skip empty message.
|
||||
continue;
|
||||
}
|
||||
|
||||
$url = ui_get_full_url(
|
||||
'index.php?sec=message_list&sec2=operation/messages/message_edit&read_message=1&id_message='.$msg['id_mensaje']
|
||||
);
|
||||
if ($msg['url'] != '') {
|
||||
$url = $msg['url'];
|
||||
}
|
||||
|
||||
echo '<tr><th class="green_title">'.$msg['subject'].'</th></tr>';
|
||||
echo '<tr><td><a href="'.$url.'">';
|
||||
if ($msg['id_usuario_origen'] != '') {
|
||||
echo '<b>'.get_user_fullname($msg['id_usuario_origen']).'</b> ';
|
||||
}
|
||||
|
||||
echo '<i>'.ui_print_timestamp($msg['timestamp'], true).'</i> '.$comparation_suffix.'</a></td></tr>';
|
||||
echo '<tr><td class="datos">';
|
||||
echo nl2br($text);
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<br><br>';
|
||||
|
||||
// EO Notifications board.
|
||||
}
|
||||
|
||||
// LAST ACTIVITY.
|
||||
// Show last activity from this user.
|
||||
echo '<div id="activity">';
|
||||
|
||||
$table = new stdClass();
|
||||
$table->class = 'databox data';
|
||||
$table->width = '100%';
|
||||
// Don't specify px
|
||||
// Don't specify px.
|
||||
$table->data = [];
|
||||
$table->size = [];
|
||||
$table->size[0] = '5%';
|
||||
|
@ -212,38 +289,14 @@ if (!empty($all_data)) {
|
|||
$table->head[3] = __('Source IP');
|
||||
$table->head[4] = __('Comments');
|
||||
$table->title = '<span>'.__('This is your last activity performed on the %s console', get_product_name()).'</span>';
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$sql = sprintf(
|
||||
'SELECT id_usuario,accion, ip_origen,descripcion,utimestamp
|
||||
$sql = sprintf(
|
||||
'SELECT id_usuario,accion, ip_origen,descripcion,utimestamp
|
||||
FROM tsesion
|
||||
WHERE (`utimestamp` > UNIX_TIMESTAMP(NOW()) - '.SECONDS_1WEEK.")
|
||||
AND `id_usuario` = '%s' ORDER BY `utimestamp` DESC LIMIT 10",
|
||||
$config['id_user']
|
||||
);
|
||||
break;
|
||||
$config['id_user']
|
||||
);
|
||||
|
||||
case 'postgresql':
|
||||
$sql = sprintf(
|
||||
"SELECT \"id_usuario\", accion, \"ip_origen\", descripcion, utimestamp
|
||||
FROM tsesion
|
||||
WHERE (\"utimestamp\" > ceil(date_part('epoch', CURRENT_TIMESTAMP)) - ".SECONDS_1WEEK.")
|
||||
AND \"id_usuario\" = '%s' ORDER BY \"utimestamp\" DESC LIMIT 10",
|
||||
$config['id_user']
|
||||
);
|
||||
break;
|
||||
|
||||
case 'oracle':
|
||||
$sql = sprintf(
|
||||
"SELECT id_usuario, accion, ip_origen, descripcion, utimestamp
|
||||
FROM tsesion
|
||||
WHERE ((utimestamp > ceil((sysdate - to_date('19700101000000','YYYYMMDDHH24MISS')) * (".SECONDS_1DAY.')) - '.SECONDS_1WEEK.")
|
||||
AND id_usuario = '%s') AND rownum <= 10 ORDER BY utimestamp DESC",
|
||||
$config['id_user']
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
$sessions = db_get_all_rows_sql($sql);
|
||||
|
||||
|
@ -253,24 +306,17 @@ if (!empty($all_data)) {
|
|||
|
||||
foreach ($sessions as $session) {
|
||||
$data = [];
|
||||
$session_id_usuario = $session['id_usuario'];
|
||||
$session_ip_origen = $session['ip_origen'];
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
case 'oracle':
|
||||
$session_id_usuario = $session['id_usuario'];
|
||||
$session_ip_origen = $session['ip_origen'];
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
$session_id_usuario = $session['id_usuario'];
|
||||
$session_ip_origen = $session['ip_origen'];
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$data[0] = '<strong>'.$session_id_usuario.'</strong>';
|
||||
$data[1] = ui_print_session_action_icon($session['accion'], true).' '.$session['accion'];
|
||||
$data[2] = ui_print_help_tip(date($config['date_format'], $session['utimestamp']), true).human_time_comparation($session['utimestamp'], 'tiny');
|
||||
$data[2] = ui_print_help_tip(
|
||||
date($config['date_format'], $session['utimestamp']),
|
||||
true
|
||||
).human_time_comparation($session['utimestamp'], 'tiny');
|
||||
$data[3] = $session_ip_origen;
|
||||
$description = str_replace([',', ', '], ', ', $session['descripcion']);
|
||||
if (strlen($description) > 100) {
|
||||
|
@ -287,8 +333,7 @@ if (!empty($all_data)) {
|
|||
unset($table);
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
// activity
|
||||
// END OF LAST ACTIVIYY/////////////////////////////
|
||||
// END OF LAST ACTIVIYY.
|
||||
?>
|
||||
|
||||
|
||||
|
|
|
@ -20,31 +20,13 @@ if (! isset($config['id_user'])) {
|
|||
<script type="text/javascript" language="javascript">
|
||||
|
||||
$(document).ready(function(){
|
||||
var menuType_value = localStorage.getItem("menuType");
|
||||
var menuType_value = "<?php echo $config['menu_type']; ?>";
|
||||
|
||||
if (menuType_value == 'classic') {
|
||||
$('#menu_full').removeClass('menu_full_collapsed').addClass('menu_full_classic');
|
||||
$('.logo_icon').css('display','none');
|
||||
$('.logo_full').css('display','block');
|
||||
$('div#title_menu').removeClass('title_menu_collapsed').addClass('title_menu_classic');
|
||||
$('div#page').removeClass('page_collapsed').addClass('page_classic');
|
||||
$('#header_table').removeClass('header_table_collapsed').addClass('header_table_classic');
|
||||
$('#button_collapse').removeClass('button_collapsed').addClass('button_classic');
|
||||
$('ul.submenu').css('left', '214px');
|
||||
$('li.menu_icon').removeClass('menu_icon_collapsed').addClass("no_hidden_menu");
|
||||
}
|
||||
else{
|
||||
if(menuType_value != 'collapsed'){
|
||||
localStorage.setItem("menuType", "collapsed");
|
||||
}
|
||||
$('#menu_full').removeClass('menu_full_classic').addClass('menu_full_collapsed');
|
||||
$('.logo_full').css('display','none');
|
||||
$('.logo_icon').css('display','block');
|
||||
$('div#title_menu').removeClass('title_menu_classic').addClass('title_menu_collapsed');
|
||||
$('div#page').removeClass('page_classic').addClass('page_collapsed');
|
||||
$('#header_table').removeClass('header_table_classic').addClass('header_table_collapsed');
|
||||
$('#button_collapse').removeClass('button_classic').addClass('button_collapsed');
|
||||
$('ul.submenu').css('left', '59px');
|
||||
$('li.menu_icon').removeClass("no_hidden_menu").addClass('menu_icon_collapsed');
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -63,14 +45,18 @@ if (isset($config['autohidden_menu']) && $config['autohidden_menu']) {
|
|||
}
|
||||
|
||||
// Menu container prepared to autohide menu
|
||||
echo '<div id="menu_full">';
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo '<div id="menu_full" class="menu_full_classic">';
|
||||
} else {
|
||||
echo '<div id="menu_full" class="menu_full_collapsed">';
|
||||
}
|
||||
|
||||
$custom_logo = 'images/custom_logo/'.$config['custom_logo'];
|
||||
$custom_logo_collapsed = 'images/custom_logo/'.$config['custom_logo_collapsed'];
|
||||
|
||||
if (!defined('PANDORA_ENTERPRISE')) {
|
||||
$logo_title = get_product_name().' Opensource';
|
||||
$custom_logo = 'images/custom_logo/pandora_logo_head_green.png';
|
||||
$custom_logo = 'images/custom_logo/pandora_logo_head_3.png';
|
||||
$custom_logo_collapsed = 'images/custom_logo/pandora_logo_green_collapsed.png';
|
||||
} else {
|
||||
if (file_exists(ENTERPRISE_DIR.'/'.$custom_logo)) {
|
||||
|
@ -82,11 +68,19 @@ if (!defined('PANDORA_ENTERPRISE')) {
|
|||
|
||||
echo '<div class="logo_green"><a href="index.php?sec=main">';
|
||||
if (isset($config['custom_logo'])) {
|
||||
echo html_print_image($custom_logo, true, ['border' => '0', 'width' => '215', 'alt' => $logo_title, 'class' => 'logo_full', 'style' => 'display:none']);
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo html_print_image($custom_logo, true, ['border' => '0', 'width' => '215', 'alt' => $logo_title, 'class' => 'logo_full', 'style' => 'display:block']);
|
||||
} else {
|
||||
echo html_print_image($custom_logo, true, ['border' => '0', 'width' => '215', 'alt' => $logo_title, 'class' => 'logo_full', 'style' => 'display:none']);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($config['custom_logo_collapsed'])) {
|
||||
echo html_print_image($custom_logo_collapsed, true, ['border' => '0', 'width' => '60', 'alt' => $logo_title, 'class' => 'logo_icon', 'style' => 'display:block']);
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo html_print_image($custom_logo_collapsed, true, ['border' => '0', 'width' => '60', 'alt' => $logo_title, 'class' => 'logo_icon', 'style' => 'display:none']);
|
||||
} else {
|
||||
echo html_print_image($custom_logo_collapsed, true, ['border' => '0', 'width' => '60', 'alt' => $logo_title, 'class' => 'logo_icon', 'style' => 'display:block']);
|
||||
}
|
||||
}
|
||||
|
||||
echo '</a></div>';
|
||||
|
@ -109,8 +103,11 @@ if (check_acl($config['id_user'], 0, 'AW')
|
|||
|
||||
require 'godmode/menu.php';
|
||||
|
||||
echo '<div id="button_collapse" class="button_collapse"></div>';
|
||||
|
||||
if ($config['menu_type'] == 'classic') {
|
||||
echo '<div id="button_collapse" class="button_classic button_collapse"></div>';
|
||||
} else {
|
||||
echo '<div id="button_collapse" class="button_collapsed button_collapse"></div>';
|
||||
}
|
||||
|
||||
// require ("links_menu.php");
|
||||
echo '</div>';
|
||||
|
@ -131,10 +128,30 @@ $('#button_collapse').on('click', function() {
|
|||
if($('#menu_full').hasClass('menu_full_classic')){
|
||||
localStorage.setItem("menuType", "collapsed");
|
||||
$('ul.submenu').css('left', '59px');
|
||||
var menuType_val = localStorage.getItem("menuType");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
data: {
|
||||
menuType: menuType_val,
|
||||
page: "include/functions_menu"
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
else if($('#menu_full').hasClass('menu_full_collapsed')){
|
||||
localStorage.setItem("menuType", "classic");
|
||||
$('ul.submenu').css('left', '214px');
|
||||
var menuType_val = localStorage.getItem("menuType");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
data: {
|
||||
menuType: menuType_val,
|
||||
page: "include/functions_menu"
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
|
||||
$('.logo_full').toggle();
|
||||
|
|
|
@ -106,6 +106,7 @@ if (isset($_POST['template_id'])) {
|
|||
'min_ff_event_normal' => $row2['min_ff_event_normal'],
|
||||
'min_ff_event_warning' => $row2['min_ff_event_warning'],
|
||||
'min_ff_event_critical' => $row2['min_ff_event_critical'],
|
||||
'ff_type' => $row2['ff_type'],
|
||||
];
|
||||
|
||||
$name = $row2['name'];
|
||||
|
|
|
@ -375,12 +375,12 @@ if ($create_modules) {
|
|||
$new_module_configuration_data .= "\nmodule_secname ".$snmp3_auth_user;
|
||||
$new_module_configuration_data .= "\nmodule_seclevel ".$snmp3_security_level;
|
||||
|
||||
if ($snmp3_security_level=='authNoPriv' || $snmp3_security_level=='authPriv') {
|
||||
if ($snmp3_security_level == 'authNoPriv' || $snmp3_security_level == 'authPriv') {
|
||||
$new_module_configuration_data .= "\nmodule_authpass ".$snmp3_auth_pass;
|
||||
$new_module_configuration_data .= "\nmodule_authproto ".$snmp3_auth_method;
|
||||
}
|
||||
|
||||
if ($snmp3_security_level=='authPriv') {
|
||||
if ($snmp3_security_level == 'authPriv') {
|
||||
$new_module_configuration_data .= "\nmodule_privproto ".$snmp3_privacy_method;
|
||||
$new_module_configuration_data .= "\nmodule_privpass ".$snmp3_privacy_pass;
|
||||
}
|
||||
|
|
|
@ -160,7 +160,7 @@ $module_macros = [];
|
|||
if ($create_agent) {
|
||||
$mssg_warning = 0;
|
||||
$alias_safe_output = io_safe_output(get_parameter('alias', ''));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$-]/', '', $alias_safe_output)));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$]/', '', $alias_safe_output)));
|
||||
$alias_as_name = (int) get_parameter_post('alias_as_name', 0);
|
||||
$direccion_agente = (string) get_parameter_post('direccion', '');
|
||||
$unique_ip = (int) get_parameter_post('unique_ip', 0);
|
||||
|
@ -766,7 +766,7 @@ if ($update_agent) {
|
|||
$id_agente = (int) get_parameter_post('id_agente');
|
||||
$nombre_agente = str_replace('`', '‘', (string) get_parameter_post('agente', ''));
|
||||
$alias_safe_output = io_safe_output(get_parameter('alias', ''));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$-]/', '', $alias_safe_output)));
|
||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$]/', '', $alias_safe_output)));
|
||||
$alias_as_name = (int) get_parameter_post('alias_as_name', 0);
|
||||
$direccion_agente = (string) get_parameter_post('direccion', '');
|
||||
$unique_ip = (int) get_parameter_post('unique_ip', 0);
|
||||
|
@ -1320,6 +1320,7 @@ if ($update_module || $create_module) {
|
|||
$ff_event_normal = (int) get_parameter('ff_event_normal');
|
||||
$ff_event_warning = (int) get_parameter('ff_event_warning');
|
||||
$ff_event_critical = (int) get_parameter('ff_event_critical');
|
||||
$ff_type = (int) get_parameter('ff_type');
|
||||
$each_ff = (int) get_parameter('each_ff');
|
||||
$ff_timeout = (int) get_parameter('ff_timeout');
|
||||
$unit = (string) get_parameter('unit_select');
|
||||
|
@ -1482,6 +1483,7 @@ if ($update_module) {
|
|||
'min_ff_event_normal' => $ff_event_normal,
|
||||
'min_ff_event_warning' => $ff_event_warning,
|
||||
'min_ff_event_critical' => $ff_event_critical,
|
||||
'ff_type' => $ff_type,
|
||||
'each_ff' => $each_ff,
|
||||
'ff_timeout' => $ff_timeout,
|
||||
'unit' => io_safe_output($unit),
|
||||
|
@ -1677,6 +1679,7 @@ if ($create_module) {
|
|||
'min_ff_event_normal' => $ff_event_normal,
|
||||
'min_ff_event_warning' => $ff_event_warning,
|
||||
'min_ff_event_critical' => $ff_event_critical,
|
||||
'ff_type' => $ff_type,
|
||||
'each_ff' => $each_ff,
|
||||
'ff_timeout' => $ff_timeout,
|
||||
'unit' => io_safe_output($unit),
|
||||
|
|
|
@ -249,6 +249,7 @@ if ($id_agent_module) {
|
|||
$ff_event_normal = $module['min_ff_event_normal'];
|
||||
$ff_event_warning = $module['min_ff_event_warning'];
|
||||
$ff_event_critical = $module['min_ff_event_critical'];
|
||||
$ff_type = $module['ff_type'];
|
||||
$each_ff = $module['each_ff'];
|
||||
$ff_timeout = $module['ff_timeout'];
|
||||
// Select tag info.
|
||||
|
@ -393,6 +394,7 @@ if ($id_agent_module) {
|
|||
$ff_event_normal = '';
|
||||
$ff_event_warning = '';
|
||||
$ff_event_critical = '';
|
||||
$ff_type = 0;
|
||||
|
||||
$id_category = 0;
|
||||
|
||||
|
|
|
@ -496,10 +496,28 @@ if (modules_is_string_type($id_module_type) || $edit) {
|
|||
$table_simple->data[5][1] .= '<br /><em>'.__('Inverse interval').'</em>';
|
||||
$table_simple->data[5][1] .= html_print_checkbox('critical_inverse', 1, $critical_inverse, true, $disabledBecauseInPolicy);
|
||||
|
||||
// FF stands for Flip-flop
|
||||
$table_simple->data[6][0] = __('FF threshold').' '.ui_print_help_icon('ff_threshold', true);
|
||||
// FF stands for Flip-flop.
|
||||
$table_simple->data[6][0] = __('FF threshold').' ';
|
||||
$table_simple->data[6][0] .= ui_print_help_icon('ff_threshold', true);
|
||||
|
||||
$table_simple->data[6][1] = html_print_radio_button('each_ff', 0, '', $each_ff, true, $disabledBecauseInPolicy).' '.__('All state changing').' : ';
|
||||
$table_simple->data[6][1] .= __('Keep counters');
|
||||
$table_simple->data[6][1] .= html_print_checkbox(
|
||||
'ff_type',
|
||||
1,
|
||||
$ff_type,
|
||||
true,
|
||||
$disabledBecauseInPolicy
|
||||
).'<br />';
|
||||
|
||||
$table_simple->data[6][1] .= html_print_radio_button(
|
||||
'each_ff',
|
||||
0,
|
||||
'',
|
||||
$each_ff,
|
||||
true,
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
$table_simple->data[6][1] .= ' '.__('All state changing').' : ';
|
||||
$table_simple->data[6][1] .= html_print_input_text(
|
||||
'ff_event',
|
||||
$ff_event,
|
||||
|
@ -512,7 +530,16 @@ $table_simple->data[6][1] .= html_print_input_text(
|
|||
'',
|
||||
$classdisabledBecauseInPolicy
|
||||
).'<br />';
|
||||
$table_simple->data[6][1] .= html_print_radio_button('each_ff', 1, '', $each_ff, true, $disabledBecauseInPolicy).' '.__('Each state changing').' : ';
|
||||
$table_simple->data[6][1] .= html_print_radio_button(
|
||||
'each_ff',
|
||||
1,
|
||||
'',
|
||||
$each_ff,
|
||||
true,
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
|
||||
$table_simple->data[6][1] .= ' '.__('Each state changing').' : ';
|
||||
$table_simple->data[6][1] .= __('To normal');
|
||||
$table_simple->data[6][1] .= html_print_input_text(
|
||||
'ff_event_normal',
|
||||
|
@ -526,6 +553,7 @@ $table_simple->data[6][1] .= html_print_input_text(
|
|||
'',
|
||||
$classdisabledBecauseInPolicy
|
||||
).' ';
|
||||
|
||||
$table_simple->data[6][1] .= __('To warning');
|
||||
$table_simple->data[6][1] .= html_print_input_text(
|
||||
'ff_event_warning',
|
||||
|
@ -539,6 +567,7 @@ $table_simple->data[6][1] .= html_print_input_text(
|
|||
'',
|
||||
$classdisabledBecauseInPolicy
|
||||
).' ';
|
||||
|
||||
$table_simple->data[6][1] .= __('To critical');
|
||||
$table_simple->data[6][1] .= html_print_input_text(
|
||||
'ff_event_critical',
|
||||
|
@ -552,16 +581,31 @@ $table_simple->data[6][1] .= html_print_input_text(
|
|||
'',
|
||||
$classdisabledBecauseInPolicy
|
||||
);
|
||||
|
||||
$table_simple->data[7][0] = __('Historical data');
|
||||
if ($disabledBecauseInPolicy) {
|
||||
// If is disabled, we send a hidden in his place and print a false checkbox because HTML dont send disabled fields and could be disabled by error
|
||||
$table_simple->data[7][1] = html_print_checkbox('history_data_fake', 1, $history_data, true, $disabledBecauseInPolicy);
|
||||
// If is disabled, we send a hidden in his place and print a false
|
||||
// checkbox because HTML dont send disabled fields
|
||||
// and could be disabled by error.
|
||||
$table_simple->data[7][1] = html_print_checkbox(
|
||||
'history_data_fake',
|
||||
1,
|
||||
$history_data,
|
||||
true,
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
$table_simple->data[7][1] .= '<input type="hidden" name="history_data" value="'.(int) $history_data.'">';
|
||||
} else {
|
||||
$table_simple->data[7][1] = html_print_checkbox('history_data', 1, $history_data, true, $disabledBecauseInPolicy);
|
||||
$table_simple->data[7][1] = html_print_checkbox(
|
||||
'history_data',
|
||||
1,
|
||||
$history_data,
|
||||
true,
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
}
|
||||
|
||||
// Advanced form part
|
||||
// Advanced form part.
|
||||
$table_advanced = new stdClass();
|
||||
$table_advanced->id = 'advanced';
|
||||
$table_advanced->width = '100%';
|
||||
|
|
|
@ -844,20 +844,122 @@ $table->data['edit1'][1] = '<table width="100%">';
|
|||
$table->data['edit6'][3] = html_print_extended_select_for_unit('unit', '-1', '', '', '0', '15', true, false, false, false, 1);
|
||||
|
||||
|
||||
// FF stands for Flip-flop
|
||||
$table->data['edit7'][0] = __('FF threshold').' '.ui_print_help_icon('ff_threshold', true);
|
||||
// FF stands for Flip-flop.
|
||||
$table->data['edit7'][0] = __('FF threshold').' ';
|
||||
$table->data['edit7'][0] .= ui_print_help_icon(
|
||||
'ff_threshold',
|
||||
true
|
||||
);
|
||||
|
||||
$table->colspan['edit7'][1] = 3;
|
||||
$table->data['edit7'][1] = __('Mode').' '.html_print_select(['' => __('No change'), '1' => __('Each state changing'), '0' => __('All state changing')], 'each_ff', '', '', '', '', true).'<br />';
|
||||
$table->data['edit7'][1] .= __('All state changing').' : '.html_print_input_text('min_ff_event', '', '', 5, 15, true).'<br />';
|
||||
$table->data['edit7'][1] = __('Mode').' ';
|
||||
$table->data['edit7'][1] .= html_print_select(
|
||||
[
|
||||
'' => __('No change'),
|
||||
'1' => __('Each state changing'),
|
||||
'0' => __('All state changing'),
|
||||
],
|
||||
'each_ff',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width: 400px;'
|
||||
).'<br />';
|
||||
|
||||
$table->data['edit7'][1] .= __('All state changing').' : ';
|
||||
$table->data['edit7'][1] .= html_print_input_text(
|
||||
'min_ff_event',
|
||||
'',
|
||||
'',
|
||||
5,
|
||||
15,
|
||||
true
|
||||
).'<br />';
|
||||
|
||||
$table->data['edit7'][1] .= __('Each state changing').' : ';
|
||||
$table->data['edit7'][1] .= __('To normal').html_print_input_text('min_ff_event_normal', '', '', 5, 15, true).' ';
|
||||
$table->data['edit7'][1] .= __('To warning').html_print_input_text('min_ff_event_warning', '', '', 5, 15, true).' ';
|
||||
$table->data['edit7'][1] .= __('To critical').html_print_input_text('min_ff_event_critical', '', '', 5, 15, true).' ';
|
||||
$table->data['edit7'][1] .= __('To normal').' ';
|
||||
$table->data['edit7'][1] .= html_print_input_text(
|
||||
'min_ff_event_normal',
|
||||
'',
|
||||
'',
|
||||
5,
|
||||
15,
|
||||
true
|
||||
).' ';
|
||||
|
||||
$table->data['edit7'][1] .= __('To warning').' ';
|
||||
$table->data['edit7'][1] .= html_print_input_text(
|
||||
'min_ff_event_warning',
|
||||
'',
|
||||
'',
|
||||
5,
|
||||
15,
|
||||
true
|
||||
).' ';
|
||||
|
||||
$table->data['edit7'][1] .= __('To critical').' ';
|
||||
$table->data['edit7'][1] .= html_print_input_text(
|
||||
'min_ff_event_critical',
|
||||
'',
|
||||
'',
|
||||
5,
|
||||
15,
|
||||
true
|
||||
).'<br>';
|
||||
|
||||
$table->data['edit7'][1] .= __('Keep counters').' ';
|
||||
$table->data['edit7'][1] .= html_print_select(
|
||||
[
|
||||
'' => __('No change'),
|
||||
'1' => __('Active Counters'),
|
||||
'0' => __('Inactive Counters'),
|
||||
],
|
||||
'ff_type',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width: 400px;'
|
||||
);
|
||||
|
||||
$table->data['edit8'][0] = __('FF interval');
|
||||
$table->data['edit8'][1] = html_print_input_text('module_ff_interval', '', '', 5, 10, true).ui_print_help_tip(__('Module execution flip flop time interval (in secs).'), true);
|
||||
$table->data['edit8'][1] = html_print_input_text(
|
||||
'module_ff_interval',
|
||||
'',
|
||||
'',
|
||||
5,
|
||||
10,
|
||||
true
|
||||
);
|
||||
$table->data['edit8'][1] .= ui_print_help_tip(
|
||||
__('Module execution flip flop time interval (in secs).'),
|
||||
true
|
||||
);
|
||||
|
||||
$table->data['edit8'][2] = __('FF timeout');
|
||||
$table->data['edit8'][3] = html_print_input_text('ff_timeout', '', '', 5, 10, true).ui_print_help_tip(__('Timeout in secs from start of flip flop counting. If this value is exceeded, FF counter is reset. Set to 0 for no timeout.'), true);
|
||||
$table->data['edit8'][3] = html_print_input_text(
|
||||
'ff_timeout',
|
||||
'',
|
||||
'',
|
||||
5,
|
||||
10,
|
||||
true
|
||||
);
|
||||
$table->data['edit8'][3] .= ui_print_help_tip(
|
||||
__('Timeout in secs from start of flip flop counting. If this value is exceeded, FF counter is reset. Set to 0 for no timeout.'),
|
||||
true
|
||||
);
|
||||
|
||||
$table->data['edit9'][0] = __('Historical data');
|
||||
$table->data['edit9'][1] = html_print_select(['' => __('No change'), '1' => __('Yes'), '0' => __('No')], 'history_data', '', '', '', '', true);
|
||||
|
@ -1685,7 +1787,7 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
$agents_select = [$agents_select];
|
||||
}
|
||||
|
||||
// List of fields which can be updated
|
||||
// List of fields which can be updated.
|
||||
$fields = [
|
||||
'dynamic_interval',
|
||||
'dynamic_max',
|
||||
|
@ -1730,6 +1832,7 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
'min_ff_event_normal',
|
||||
'min_ff_event_warning',
|
||||
'min_ff_event_critical',
|
||||
'ff_type',
|
||||
'each_ff',
|
||||
'module_ff_interval',
|
||||
'ff_timeout',
|
||||
|
|
|
@ -24,15 +24,15 @@ $menu_godmode['class'] = 'godmode';
|
|||
|
||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
$sub = [];
|
||||
$sub['godmode/servers/discovery']['text'] = __('Discover');
|
||||
$sub['godmode/servers/discovery']['id'] = 'Discover';
|
||||
$sub['godmode/servers/discovery']['text'] = __('Discovery');
|
||||
$sub['godmode/servers/discovery']['id'] = 'Discovery';
|
||||
$sub['godmode/servers/discovery']['subsecs'] = ['godmode/servers/discovery'];
|
||||
|
||||
// Add to menu.
|
||||
$menu_godmode['discover']['text'] = __('Discovery');
|
||||
$menu_godmode['discover']['sec2'] = 'godmode/servers/discovery';
|
||||
$menu_godmode['discover']['id'] = 'god-discovery';
|
||||
$menu_godmode['discover']['sub'] = $sub;
|
||||
$menu_godmode['discovery']['text'] = __('Discovery');
|
||||
$menu_godmode['discovery']['sec2'] = 'godmode/servers/discovery';
|
||||
$menu_godmode['discovery']['id'] = 'god-discovery';
|
||||
$menu_godmode['discovery']['sub'] = $sub;
|
||||
}
|
||||
|
||||
|
||||
|
@ -225,15 +225,9 @@ if (check_acl($config['id_user'], 0, 'AW') || check_acl($config['id_user'], 0, '
|
|||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
enterprise_hook('ha_cluster');
|
||||
|
||||
$sub['godmode/servers/manage_recontask']['text'] = __('Recon task');
|
||||
$sub['godmode/servers/manage_recontask']['id'] = 'Recon task';
|
||||
|
||||
$sub['godmode/servers/plugin']['text'] = __('Plugins');
|
||||
$sub['godmode/servers/plugin']['id'] = 'Plugins';
|
||||
|
||||
$sub['godmode/servers/recon_script']['text'] = __('Recon script');
|
||||
$sub['godmode/servers/recon_script']['id'] = 'Recon script';
|
||||
|
||||
enterprise_hook('export_target_submenu');
|
||||
|
||||
enterprise_hook('manage_satellite_submenu');
|
||||
|
|
|
@ -124,6 +124,7 @@ $pure = get_parameter('pure', 0);
|
|||
$ff_event_normal = (int) get_parameter('ff_event_normal');
|
||||
$ff_event_warning = (int) get_parameter('ff_event_warning');
|
||||
$ff_event_critical = (int) get_parameter('ff_event_critical');
|
||||
$ff_type = (int) get_parameter('ff_type');
|
||||
$each_ff = (int) get_parameter('each_ff');
|
||||
|
||||
if (count($id_tag_selected) == 1 && empty($id_tag_selected[0])) {
|
||||
|
@ -261,6 +262,7 @@ if ($create_component) {
|
|||
'min_ff_event_normal' => $ff_event_normal,
|
||||
'min_ff_event_warning' => $ff_event_warning,
|
||||
'min_ff_event_critical' => $ff_event_critical,
|
||||
'ff_type' => $ff_type,
|
||||
'each_ff' => $each_ff,
|
||||
]
|
||||
);
|
||||
|
@ -355,6 +357,7 @@ if ($update_component) {
|
|||
'min_ff_event_normal' => $ff_event_normal,
|
||||
'min_ff_event_warning' => $ff_event_warning,
|
||||
'min_ff_event_critical' => $ff_event_critical,
|
||||
'ff_type' => $ff_type,
|
||||
'each_ff' => $each_ff,
|
||||
]
|
||||
);
|
||||
|
@ -496,6 +499,7 @@ $url = ui_get_url_refresh(
|
|||
'ff_event_warning' => false,
|
||||
'ff_event_critical' => false,
|
||||
'each_ff' => false,
|
||||
'ff_type' => false,
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
@ -76,6 +76,7 @@ if ($create_network_from_module) {
|
|||
$ff_event_normal = $data_module['min_ff_event_normal'];
|
||||
$ff_event_warning = $data_module['min_ff_event_warning'];
|
||||
$ff_event_critical = $data_module['min_ff_event_critical'];
|
||||
$ff_type = $data_module['ff_type'];
|
||||
$each_ff = $data_module['each_ff'];
|
||||
}
|
||||
|
||||
|
@ -134,6 +135,7 @@ if (isset($id)) {
|
|||
$ff_event_normal = $component['min_ff_event_normal'];
|
||||
$ff_event_warning = $component['min_ff_event_warning'];
|
||||
$ff_event_critical = $component['min_ff_event_critical'];
|
||||
$ff_type = $component['ff_type'];
|
||||
$each_ff = $component['each_ff'];
|
||||
|
||||
if ($type >= 15 && $type <= 18) {
|
||||
|
@ -192,6 +194,7 @@ if (isset($id)) {
|
|||
$ff_event_normal = 0;
|
||||
$ff_event_warning = 0;
|
||||
$ff_event_critical = 0;
|
||||
$ff_type = 0;
|
||||
$each_ff = 0;
|
||||
|
||||
$snmp_version = 1;
|
||||
|
|
|
@ -233,7 +233,23 @@ $table->data[5][1] .= html_print_checkbox('critical_inverse', 1, $critical_inver
|
|||
|
||||
$table->data[6][0] = __('FF threshold').' '.ui_print_help_icon('ff_threshold', true);
|
||||
$table->colspan[6][1] = 3;
|
||||
$table->data[6][1] = html_print_radio_button('each_ff', 0, '', $each_ff, true).' '.__('All state changing').' : ';
|
||||
|
||||
$table->data[6][1] = __('Keep counters');
|
||||
$table->data[6][1] .= html_print_checkbox(
|
||||
'ff_type',
|
||||
1,
|
||||
$ff_type,
|
||||
true
|
||||
).'<br />';
|
||||
|
||||
$table->data[6][1] .= html_print_radio_button(
|
||||
'each_ff',
|
||||
0,
|
||||
'',
|
||||
$each_ff,
|
||||
true
|
||||
).' '.__('All state changing').' : ';
|
||||
|
||||
$table->data[6][1] .= html_print_input_text(
|
||||
'ff_event',
|
||||
$ff_event,
|
||||
|
@ -242,13 +258,40 @@ $table->data[6][1] .= html_print_input_text(
|
|||
15,
|
||||
true
|
||||
).'<br />';
|
||||
$table->data[6][1] .= html_print_radio_button('each_ff', 1, '', $each_ff, true).' '.__('Each state changing').' : ';
|
||||
$table->data[6][1] .= html_print_radio_button(
|
||||
'each_ff',
|
||||
1,
|
||||
'',
|
||||
$each_ff,
|
||||
true
|
||||
).' '.__('Each state changing').' : ';
|
||||
$table->data[6][1] .= __('To normal');
|
||||
$table->data[6][1] .= html_print_input_text('ff_event_normal', $ff_event_normal, '', 5, 15, true).' ';
|
||||
$table->data[6][1] .= html_print_input_text(
|
||||
'ff_event_normal',
|
||||
$ff_event_normal,
|
||||
'',
|
||||
5,
|
||||
15,
|
||||
true
|
||||
).' ';
|
||||
$table->data[6][1] .= __('To warning');
|
||||
$table->data[6][1] .= html_print_input_text('ff_event_warning', $ff_event_warning, '', 5, 15, true).' ';
|
||||
$table->data[6][1] .= html_print_input_text(
|
||||
'ff_event_warning',
|
||||
$ff_event_warning,
|
||||
'',
|
||||
5,
|
||||
15,
|
||||
true
|
||||
).' ';
|
||||
$table->data[6][1] .= __('To critical');
|
||||
$table->data[6][1] .= html_print_input_text('ff_event_critical', $ff_event_critical, '', 5, 15, true);
|
||||
$table->data[6][1] .= html_print_input_text(
|
||||
'ff_event_critical',
|
||||
$ff_event_critical,
|
||||
'',
|
||||
5,
|
||||
15,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[7][0] = __('Historical data');
|
||||
$table->data[7][1] = html_print_checkbox('history_data', 1, $history_data, true);
|
||||
|
|
|
@ -85,7 +85,6 @@ if ($id) {
|
|||
$dst_port = $filter['dst_port'];
|
||||
$src_port = $filter['src_port'];
|
||||
$aggregate = $filter['aggregate'];
|
||||
$output = $filter['output'];
|
||||
$advanced_filter = $filter['advanced_filter'];
|
||||
} else {
|
||||
$name = '';
|
||||
|
@ -94,8 +93,7 @@ if ($id) {
|
|||
$ip_src = '';
|
||||
$dst_port = '';
|
||||
$src_port = '';
|
||||
$aggregate = 'none';
|
||||
$output = 'bytes';
|
||||
$aggregate = 'dstip';
|
||||
$advanced_filter = '';
|
||||
}
|
||||
|
||||
|
@ -103,7 +101,6 @@ if ($update) {
|
|||
$name = (string) get_parameter('name');
|
||||
$assign_group = (int) get_parameter('assign_group');
|
||||
$aggregate = get_parameter('aggregate', '');
|
||||
$output = get_parameter('output', 'bytes');
|
||||
$ip_dst = get_parameter('ip_dst', '');
|
||||
$ip_src = get_parameter('ip_src', '');
|
||||
$dst_port = get_parameter('dst_port', '');
|
||||
|
@ -123,7 +120,6 @@ if ($update) {
|
|||
'dst_port' => $dst_port,
|
||||
'src_port' => $src_port,
|
||||
'advanced_filter' => $advanced_filter,
|
||||
'output' => $output,
|
||||
];
|
||||
|
||||
// Save filter args
|
||||
|
@ -142,8 +138,7 @@ if ($update) {
|
|||
if ($create) {
|
||||
$name = (string) get_parameter('name');
|
||||
$assign_group = (int) get_parameter('assign_group');
|
||||
$aggregate = get_parameter('aggregate', 'none');
|
||||
$output = get_parameter('output', 'bytes');
|
||||
$aggregate = get_parameter('aggregate', 'dstip');
|
||||
$ip_dst = get_parameter('ip_dst', '');
|
||||
$ip_src = get_parameter('ip_src', '');
|
||||
$dst_port = get_parameter('dst_port', '');
|
||||
|
@ -159,7 +154,6 @@ if ($create) {
|
|||
'src_port' => $src_port,
|
||||
'aggregate' => $aggregate,
|
||||
'advanced_filter' => $advanced_filter,
|
||||
'output' => $output,
|
||||
];
|
||||
|
||||
// Save filter args
|
||||
|
@ -241,8 +235,6 @@ $table->data[7][1] = html_print_textarea('advanced_filter', 4, 40, $advanced_fil
|
|||
|
||||
$table->data[8][0] = '<b>'.__('Aggregate by').'</b>'.ui_print_help_icon('aggregate_by', true);
|
||||
$aggregate_list = [
|
||||
'none' => __('None'),
|
||||
'proto' => __('Protocol'),
|
||||
'srcip' => __('Src Ip Address'),
|
||||
'dstip' => __('Dst Ip Address'),
|
||||
'srcport' => __('Src Port'),
|
||||
|
@ -251,15 +243,6 @@ $aggregate_list = [
|
|||
|
||||
$table->data[8][1] = html_print_select($aggregate_list, 'aggregate', $aggregate, '', '', 0, true, false, true, '', false);
|
||||
|
||||
$table->data[9][0] = '<b>'.__('Output format').'</b>';
|
||||
$show_output = [
|
||||
'kilobytes' => __('Kilobytes'),
|
||||
'megabytes' => __('Megabytes'),
|
||||
'kilobytespersecond' => __('Kilobytes per second'),
|
||||
'megabytespersecond' => __('Megabytes per second'),
|
||||
];
|
||||
$table->data[9][1] = html_print_select($show_output, 'output', $output, '', '', 0, true, false, true, '', false);
|
||||
|
||||
echo '<form method="post" action="'.$config['homeurl'].'index.php?sec=netf&sec2=godmode/netflow/nf_edit_form&pure='.$pure.'">';
|
||||
html_print_table($table);
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
|
|
@ -110,7 +110,7 @@ $event_graph_validated_vs_unvalidated = false;
|
|||
|
||||
$netflow_filter = 0;
|
||||
$max_values = 0;
|
||||
$resolution = 0;
|
||||
$resolution = NETFLOW_RES_MEDD;
|
||||
|
||||
$lapse_calc = 0;
|
||||
$lapse = 300;
|
||||
|
@ -119,6 +119,20 @@ $visual_format = 0;
|
|||
// Others
|
||||
$filter_search = '';
|
||||
|
||||
// Added for select fields.
|
||||
$total_time = true;
|
||||
$time_failed = true;
|
||||
$time_in_ok_status = true;
|
||||
$time_in_unknown_status = true;
|
||||
$time_of_not_initialized_module = true;
|
||||
$time_of_downtime = true;
|
||||
$total_checks = true;
|
||||
$checks_failed = true;
|
||||
$checks_in_ok_status = true;
|
||||
$unknown_checks = true;
|
||||
$agent_max_value = true;
|
||||
$agent_min_value = true;
|
||||
|
||||
switch ($action) {
|
||||
case 'new':
|
||||
$actionParameter = 'save';
|
||||
|
@ -450,6 +464,7 @@ switch ($action) {
|
|||
case 'event_report_agent':
|
||||
case 'event_report_group':
|
||||
$recursion = $item['recursion'];
|
||||
$include_extended_events = $item['show_extended_events'];
|
||||
break;
|
||||
|
||||
case 'event_report_module':
|
||||
|
@ -471,6 +486,8 @@ switch ($action) {
|
|||
$event_graph_validated_vs_unvalidated = $style['event_graph_validated_vs_unvalidated'];
|
||||
|
||||
$filter_search = $style['event_filter_search'];
|
||||
|
||||
$include_extended_events = $item['show_extended_events'];
|
||||
break;
|
||||
|
||||
case 'general':
|
||||
|
@ -498,6 +515,18 @@ switch ($action) {
|
|||
$sunday = $item['sunday'];
|
||||
$time_from = $item['time_from'];
|
||||
$time_to = $item['time_to'];
|
||||
$total_time = $item['total_time'];
|
||||
$time_failed = $item['time_failed'];
|
||||
$time_in_ok_status = $item['time_in_ok_status'];
|
||||
$time_in_unknown_status = $item['time_in_unknown_status'];
|
||||
$time_of_not_initialized_module = $item['time_of_not_initialized_module'];
|
||||
$time_of_downtime = $item['time_of_downtime'];
|
||||
$total_checks = $item['total_checks'];
|
||||
$checks_failed = $item['checks_failed'];
|
||||
$checks_in_ok_status = $item['checks_in_ok_status'];
|
||||
$unknown_checks = $item['unknown_checks'];
|
||||
$agent_max_value = $item['agent_max_value'];
|
||||
$agent_min_value = $item['agent_min_value'];
|
||||
break;
|
||||
|
||||
case 'group_report':
|
||||
|
@ -597,18 +626,22 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'netflow_area':
|
||||
case 'netflow_pie':
|
||||
case 'netflow_data':
|
||||
case 'netflow_statistics':
|
||||
case 'netflow_summary':
|
||||
$netflow_filter = $item['text'];
|
||||
// Filter
|
||||
// Filter.
|
||||
$period = $item['period'];
|
||||
$description = $item['description'];
|
||||
$resolution = $item['top_n'];
|
||||
// Interval resolution
|
||||
// Interval resolution.
|
||||
$max_values = $item['top_n_value'];
|
||||
// Max values
|
||||
// Max values.
|
||||
break;
|
||||
|
||||
case 'nt_top_n':
|
||||
$period = $item['period'];
|
||||
$description = $item['description'];
|
||||
$top_n_value = $item['top_n_value'];
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -635,6 +668,7 @@ switch ($action) {
|
|||
case 'simple_baseline_graph':
|
||||
case 'event_report_log':
|
||||
case 'increment':
|
||||
case 'nt_top_n':
|
||||
$label = (isset($style['label'])) ? $style['label'] : '';
|
||||
break;
|
||||
|
||||
|
@ -837,7 +871,11 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_extended_select_for_time('resolution', $resolution, '', '', '0', 10);
|
||||
html_print_select(
|
||||
netflow_resolution_select_params(),
|
||||
'resolution',
|
||||
$resolution
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -1585,20 +1623,6 @@ $class = 'databox filters';
|
|||
REPORT_EXCEPTION_CONDITION_NOT_OK => __('Not OK'),
|
||||
];
|
||||
html_print_select($list_exception_condition, 'exception_condition', $exception_condition);
|
||||
|
||||
|
||||
/*
|
||||
echo ;
|
||||
html_print_radio_button ('radiobutton_exception_condition', 0, '', $exception_condition);
|
||||
echo __('>=');
|
||||
html_print_radio_button ('radiobutton_exception_condition', 1, '', $exception_condition);
|
||||
echo __('<');
|
||||
html_print_radio_button ('radiobutton_exception_condition', 2, '', $exception_condition);
|
||||
echo __('OK');
|
||||
html_print_radio_button ('radiobutton_exception_condition', 3, '', $exception_condition);
|
||||
echo __('Not OK');
|
||||
html_print_radio_button ('radiobutton_exception_condition', 4, '', $exception_condition);
|
||||
*/
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -1608,6 +1632,65 @@ $class = 'databox filters';
|
|||
<td><?php html_print_select($show_graph_options, 'combo_graph_options', $show_graph); ?></td>
|
||||
|
||||
</tr>
|
||||
<tr id="row_select_fields" style="" class="datos">
|
||||
<td style="font-weight:bold;margin-right:150px;">
|
||||
<?php
|
||||
echo __('Select fields to show');
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<table border="0">
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Total time');
|
||||
html_print_checkbox('total_time', 1, $total_time);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time failed');
|
||||
html_print_checkbox('time_failed', 1, $time_failed);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time in OK status');
|
||||
html_print_checkbox('time_in_ok_status', 1, $time_in_ok_status);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time in unknown status');
|
||||
html_print_checkbox('time_in_unknown_status', 1, $time_in_unknown_status);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time of not initialized module');
|
||||
html_print_checkbox('time_of_not_initialized_module', 1, $time_of_not_initialized_module);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time of downtime');
|
||||
html_print_checkbox('time_of_downtime', 1, $time_of_downtime);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_show_address_agent" style="" class="datos">
|
||||
<td style="font-weight:bold;">
|
||||
|
@ -1617,7 +1700,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'checkbox_show_address_agent',
|
||||
1,
|
||||
$show_address_agent
|
||||
|
@ -1626,11 +1709,12 @@ $class = 'databox filters';
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr id="row_show_resume" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Show resume').ui_print_help_tip(__('Show a summary chart with max, min and average number of total modules at the end of the report and Checks.'), true); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'checkbox_show_resume',
|
||||
1,
|
||||
$show_resume
|
||||
|
@ -1638,6 +1722,78 @@ $class = 'databox filters';
|
|||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="row_select_fields2" style="" class="datos">
|
||||
<td style="font-weight:bold;margin-right:150px;">
|
||||
<?php
|
||||
echo __('<p style= "margin-left:15px;">Select fields to show</p>');
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<table border="0">
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Total checks');
|
||||
html_print_checkbox('total_checks', 1, $total_checks);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Checks failed');
|
||||
html_print_checkbox('checks_failed', 1, $checks_failed);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Checks in OK status');
|
||||
html_print_checkbox('checks_in_ok_status', 1, $checks_in_ok_status);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Unknown checks');
|
||||
html_print_checkbox('unknown_checks', 1, $unknown_checks);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="row_select_fields3" style="" class="datos">
|
||||
<td style="font-weight:bold;margin-right:150px;">
|
||||
<?php
|
||||
echo __('<p style= "margin-left:15px;">Select fields to show</p>');
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<table border="0">
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Agent max value');
|
||||
html_print_checkbox('agent_max_value', 1, $agent_max_value);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Agent min values');
|
||||
html_print_checkbox('agent_min_value', 1, $agent_min_value);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_show_summary_group" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Show Summary group'); ?></td>
|
||||
|
@ -1729,6 +1885,15 @@ $class = 'databox filters';
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_extended_events" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Include extended events'); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox('include_extended_events', true, $include_extended_events);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_event_graphs" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Event graphs'); ?></td>
|
||||
<td>
|
||||
|
@ -2605,6 +2770,17 @@ $(document).ready (function () {
|
|||
|
||||
});
|
||||
|
||||
$("#checkbox-checkbox_show_resume").change(function(){
|
||||
if($(this).is(":checked")){
|
||||
$("#row_select_fields2").show();
|
||||
$("#row_select_fields3").show();
|
||||
}
|
||||
else{
|
||||
$("#row_select_fields2").hide();
|
||||
$("#row_select_fields3").hide();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function create_custom_graph() {
|
||||
|
@ -3101,6 +3277,7 @@ function chooseType() {
|
|||
$("#row_event_graph_by_user").hide();
|
||||
$("#row_event_graph_by_criticity").hide();
|
||||
$("#row_event_graph_by_validated").hide();
|
||||
$("#row_extended_events").hide();
|
||||
$("#row_netflow_filter").hide();
|
||||
$("#row_max_values").hide();
|
||||
$("#row_resolution").hide();
|
||||
|
@ -3117,6 +3294,9 @@ function chooseType() {
|
|||
$("#row_event_type").hide();
|
||||
$("#row_event_status").hide();
|
||||
$("#row_source").hide();
|
||||
$('#row_select_fields').hide();
|
||||
$("#row_select_fields2").hide();
|
||||
$("#row_select_fields3").hide();
|
||||
|
||||
// SLA list default state
|
||||
$("#sla_list").hide();
|
||||
|
@ -3144,6 +3324,7 @@ function chooseType() {
|
|||
$("#row_event_graph_by_user").show();
|
||||
$("#row_event_graph_by_criticity").show();
|
||||
$("#row_event_graph_by_validated").show();
|
||||
$("#row_extended_events").show();
|
||||
|
||||
$("#row_filter_search").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
|
@ -3444,6 +3625,7 @@ function chooseType() {
|
|||
$("#row_event_graph_by_criticity").show();
|
||||
$("#row_event_graph_by_validated").show();
|
||||
$("#row_event_type").show();
|
||||
$("#row_extended_events").show();
|
||||
|
||||
$("#row_filter_search").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
|
@ -3459,7 +3641,8 @@ function chooseType() {
|
|||
$("#row_show_summary_group").show();
|
||||
$("#row_event_graphs").show();
|
||||
$("#row_event_type").show();
|
||||
|
||||
$("#row_extended_events").show();
|
||||
$("#row_extended_events").show();
|
||||
|
||||
$("#row_event_graph_by_user").show();
|
||||
$("#row_event_graph_by_criticity").show();
|
||||
|
@ -3482,6 +3665,7 @@ function chooseType() {
|
|||
$("#row_show_summary_group").show();
|
||||
$("#row_event_graphs").show();
|
||||
$("#row_event_type").show();
|
||||
$("#row_extended_events").show();
|
||||
|
||||
$("#row_event_graph_by_user").show();
|
||||
$("#row_event_graph_by_criticity").show();
|
||||
|
@ -3521,6 +3705,15 @@ function chooseType() {
|
|||
$("#row_show_resume").show();
|
||||
$("#row_working_time").show();
|
||||
$('#row_hide_notinit_agents').show();
|
||||
$('#row_select_fields').show();
|
||||
if($("#checkbox-checkbox_show_resume").is(":checked")){
|
||||
$("#row_select_fields2").show();
|
||||
$("#row_select_fields3").show();
|
||||
}
|
||||
else{
|
||||
$("#row_select_fields2").hide();
|
||||
$("#row_select_fields3").hide();
|
||||
}
|
||||
$("#row_historical_db_check").hide();
|
||||
break;
|
||||
|
||||
|
@ -3656,16 +3849,6 @@ function chooseType() {
|
|||
$("#row_historical_db_check").hide();
|
||||
break;
|
||||
|
||||
case 'netflow_pie':
|
||||
$("#row_netflow_filter").show();
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
$("#row_max_values").show();
|
||||
$("#row_resolution").show();
|
||||
$("#row_servers").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
break;
|
||||
|
||||
case 'netflow_data':
|
||||
$("#row_netflow_filter").show();
|
||||
$("#row_description").show();
|
||||
|
@ -3680,19 +3863,16 @@ function chooseType() {
|
|||
$("#row_netflow_filter").show();
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
$("#row_max_values").show();
|
||||
$("#row_resolution").show();
|
||||
$("#row_servers").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
break;
|
||||
|
||||
case 'netflow_statistics':
|
||||
$("#row_netflow_filter").show();
|
||||
case 'nt_top_n':
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
$("#row_max_values").show();
|
||||
$("#row_resolution").show();
|
||||
$("#row_servers").show();
|
||||
$("#row_historical_db_check").hide();
|
||||
$("#row_quantity").show();
|
||||
break;
|
||||
}
|
||||
switch (type) {
|
||||
|
|
|
@ -70,7 +70,7 @@ global $config;
|
|||
// IMPORTANT NOTE: All reporting pages are used also for metaconsole reporting functionality
|
||||
// So, it's very important to specify full url and paths to resources because metaconsole has a different
|
||||
// entry point: enterprise/meta/index.php than normal console !!!
|
||||
// Login check
|
||||
// Login check.
|
||||
check_login();
|
||||
|
||||
enterprise_hook('open_meta_frame');
|
||||
|
@ -89,7 +89,7 @@ if (!$report_r && !$report_w && !$report_m) {
|
|||
|
||||
require_once $config['homedir'].'/include/functions_reports.php';
|
||||
|
||||
// Load enterprise extensions
|
||||
// Load enterprise extensions.
|
||||
enterprise_include('operation/reporting/custom_reporting.php');
|
||||
enterprise_include_once('include/functions_metaconsole.php');
|
||||
|
||||
|
@ -98,7 +98,7 @@ if (enterprise_include_once('include/functions_reporting.php') !== ENTERPRISE_NO
|
|||
$enterpriseEnable = true;
|
||||
}
|
||||
|
||||
// Constant with fonts directory
|
||||
// Constant with fonts directory.
|
||||
define('_MPDF_TTFONTPATH', 'include/fonts/');
|
||||
|
||||
$activeTab = get_parameter('tab', 'main');
|
||||
|
@ -117,10 +117,10 @@ if ($schedule_report != '') {
|
|||
$date = date(DATE_FORMAT);
|
||||
$time = date(TIME_FORMAT);
|
||||
$parameters[0] = get_parameter('id_schedule_report');
|
||||
// $parameters[1] = db_get_value('schedule_email', 'treport', 'id_report', $id_report);
|
||||
$parameters[1] = get_parameter('schedule_email_address');
|
||||
$parameters[2] = get_parameter('schedule_subject', '');
|
||||
$parameters[3] = get_parameter('schedule_email', '');
|
||||
$parameters[4] = get_parameter('report_type', '');
|
||||
$parameters['first_execution'] = strtotime($date.' '.$time);
|
||||
|
||||
$values = [
|
||||
|
@ -141,7 +141,7 @@ if ($schedule_report != '') {
|
|||
echo '<br>';
|
||||
}
|
||||
|
||||
// Other Checks for the edit the reports
|
||||
// Other Checks for the edit the reports.
|
||||
if ($idReport != 0) {
|
||||
$report = db_get_row_filter('treport', ['id_report' => $idReport]);
|
||||
$type_access_selected = reports_get_type_access($report);
|
||||
|
@ -162,6 +162,10 @@ if ($idReport != 0) {
|
|||
$edit = true;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
if (! $edit) {
|
||||
|
@ -227,6 +231,10 @@ switch ($action) {
|
|||
ORDER BY "order"'
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
if ($items === false) {
|
||||
|
@ -234,7 +242,7 @@ switch ($action) {
|
|||
}
|
||||
|
||||
|
||||
// Clean the repeated order values
|
||||
// Clean the repeated order values.
|
||||
$order_temp = 1;
|
||||
foreach ($items as $item) {
|
||||
switch ($config['dbtype']) {
|
||||
|
@ -254,6 +262,10 @@ switch ($action) {
|
|||
['id_rc' => $item['id_rc']]
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$order_temp++;
|
||||
|
@ -281,6 +293,10 @@ switch ($action) {
|
|||
ORDER BY "order"'
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
if ($items === false) {
|
||||
|
@ -293,7 +309,7 @@ switch ($action) {
|
|||
|
||||
$temp = [];
|
||||
foreach ($items as $item) {
|
||||
// Remove the contents from the block to sort
|
||||
// Remove the contents from the block to sort.
|
||||
if (array_search($item['id_rc'], $ids) === false) {
|
||||
$temp[$item['order']] = $item['id_rc'];
|
||||
}
|
||||
|
@ -344,6 +360,10 @@ switch ($action) {
|
|||
['id_rc' => $id]
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -415,6 +435,10 @@ switch ($action) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -444,9 +468,9 @@ switch ($action) {
|
|||
break;
|
||||
}
|
||||
|
||||
// Page header for metaconsole
|
||||
if ($enterpriseEnable and defined('METACONSOLE')) {
|
||||
// Bread crumbs
|
||||
// Page header for metaconsole.
|
||||
if ($enterpriseEnable && defined('METACONSOLE')) {
|
||||
// Bread crumbs.
|
||||
ui_meta_add_breadcrumb(
|
||||
[
|
||||
'link' => 'index.php?sec=reporting&sec2=godmode/reporting/reporting_builder&pure='.$pure,
|
||||
|
@ -456,10 +480,11 @@ switch ($action) {
|
|||
|
||||
ui_meta_print_page_header($nav_bar);
|
||||
|
||||
// Print header
|
||||
// Print header.
|
||||
ui_meta_print_header(__('Reporting'), '', $buttons);
|
||||
}
|
||||
// Page header for normal console
|
||||
|
||||
// Page header for normal console.
|
||||
else {
|
||||
ui_print_page_header(__('Custom reporting'), 'images/op_reporting.png', false, '', false, $buttons, false, '', 60);
|
||||
}
|
||||
|
@ -471,7 +496,7 @@ switch ($action) {
|
|||
case 'group_view':
|
||||
if ($config['id_user'] == $report['id_user'] || is_user_admin($config['id_user'])) {
|
||||
$delete = true;
|
||||
// owner can delete
|
||||
// Owner can delete.
|
||||
} else {
|
||||
$delete = check_acl(
|
||||
$config['id_user'],
|
||||
|
@ -484,7 +509,7 @@ switch ($action) {
|
|||
case 'group_edit':
|
||||
if ($config['id_user'] == $report['id_user'] || is_user_admin($config['id_user'])) {
|
||||
$delete = true;
|
||||
// owner can delete
|
||||
// Owner can delete.
|
||||
} else {
|
||||
$delete = check_acl(
|
||||
$config['id_user'],
|
||||
|
@ -501,6 +526,10 @@ switch ($action) {
|
|||
$delete = true;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
if (! $delete) {
|
||||
|
@ -571,7 +600,7 @@ switch ($action) {
|
|||
ui_require_jquery_file('bgiframe');
|
||||
ui_require_jquery_file('autocomplete');
|
||||
|
||||
// Show only selected groups
|
||||
// Show only selected groups.
|
||||
if ($id_group > 0) {
|
||||
$group = ["$id_group" => $id_group];
|
||||
} else {
|
||||
|
@ -595,7 +624,7 @@ switch ($action) {
|
|||
}
|
||||
|
||||
// Fix : group filter was not working
|
||||
// Show only selected groups
|
||||
// Show only selected groups.
|
||||
if ($id_group > 0) {
|
||||
$group = ["$id_group" => $id_group];
|
||||
$filter['id_group'] = $id_group;
|
||||
|
@ -603,8 +632,8 @@ switch ($action) {
|
|||
$group = false;
|
||||
}
|
||||
|
||||
// Filter normal and metaconsole reports
|
||||
if ($config['metaconsole'] == 1 and defined('METACONSOLE')) {
|
||||
// Filter normal and metaconsole reports.
|
||||
if ($config['metaconsole'] == 1 && defined('METACONSOLE')) {
|
||||
$filter['metaconsole'] = 1;
|
||||
} else {
|
||||
$filter['metaconsole'] = 0;
|
||||
|
@ -670,12 +699,12 @@ switch ($action) {
|
|||
$table->size['csv'] = '5%';
|
||||
|
||||
$next = 4;
|
||||
// Calculate dinamically the number of the column
|
||||
// Calculate dinamically the number of the column.
|
||||
if (enterprise_hook('load_custom_reporting_1') !== ENTERPRISE_NOT_HOOK) {
|
||||
$next = 7;
|
||||
}
|
||||
|
||||
// Admin options only for RM flag
|
||||
// Admin options only for RM flag.
|
||||
if (check_acl($config['id_user'], 0, 'RM')) {
|
||||
$table->head[$next] = __('Private');
|
||||
$table->size[$next] = '2%';
|
||||
|
@ -743,7 +772,7 @@ switch ($action) {
|
|||
|
||||
$data[1] = ui_print_truncate_text($report['description'], 70);
|
||||
|
||||
// Remove html and xml button if items are larger than limit
|
||||
// Remove html and xml button if items are larger than limit.
|
||||
$item_count = db_get_num_rows('SELECT * FROM treport_content WHERE id_report='.$report['id_report']);
|
||||
$report['overload'] = $item_count >= $config['report_limit'];
|
||||
if ($report['overload']) {
|
||||
|
@ -752,7 +781,7 @@ switch ($action) {
|
|||
} else if (!$report['non_interactive']) {
|
||||
$data[2] = '<a href="'.$config['homeurl'].'index.php?sec=reporting&sec2=operation/reporting/reporting_viewer&id='.$report['id_report'].'&pure='.$pure.'">'.html_print_image('images/html.png', true, ['title' => __('HTML view')]).'</a>';
|
||||
$data[3] = '<a href="'.ui_get_full_url(false, false, false, false).'ajax.php?page='.$config['homedir'].'/operation/reporting/reporting_xml&id='.$report['id_report'].'">'.html_print_image('images/xml.png', true, ['title' => __('Export to XML')]).'</a>';
|
||||
// I chose ajax.php because it's supposed to give XML anyway
|
||||
// I chose ajax.php because it's supposed to give XML anyway.
|
||||
} else {
|
||||
$data[2] = html_print_image(
|
||||
'images/html_disabled.png',
|
||||
|
@ -765,14 +794,14 @@ switch ($action) {
|
|||
}
|
||||
|
||||
|
||||
// Calculate dinamically the number of the column
|
||||
// Calculate dinamically the number of the column.
|
||||
$next = 4;
|
||||
if (enterprise_hook('load_custom_reporting_2') !== ENTERPRISE_NOT_HOOK) {
|
||||
$next = 7;
|
||||
}
|
||||
|
||||
|
||||
// Admin options only for RM flag
|
||||
// Admin options only for RM flag.
|
||||
if (check_acl($config['id_user'], 0, 'RM')) {
|
||||
if ($report['private'] == 1) {
|
||||
$data[$next] = __('Yes');
|
||||
|
@ -820,6 +849,10 @@ switch ($action) {
|
|||
$delete = true;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
if ($edit || $delete) {
|
||||
|
@ -915,7 +948,6 @@ switch ($action) {
|
|||
}
|
||||
|
||||
enterprise_hook('close_meta_frame');
|
||||
|
||||
return;
|
||||
|
||||
break;
|
||||
|
@ -943,6 +975,10 @@ switch ($action) {
|
|||
$idGroupReport = $report['id_group'];
|
||||
$description = $report['description'];
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -976,6 +1012,10 @@ switch ($action) {
|
|||
$id_group_edit = 0;
|
||||
$private = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
if ($action == 'update') {
|
||||
|
@ -1026,10 +1066,10 @@ switch ($action) {
|
|||
$action = 'edit';
|
||||
} else if ($action == 'save') {
|
||||
if ($reportName != '' && $idGroupReport != '') {
|
||||
// This flag allow to differentiate between normal console and metaconsole reports
|
||||
// This flag allow to differentiate between normal console and metaconsole reports.
|
||||
$metaconsole_report = (int) is_metaconsole();
|
||||
|
||||
// Juanma (07/05/2014) New feature: Custom front page for reports
|
||||
// Juanma (07/05/2014) New feature: Custom front page for reports.
|
||||
if ($config['custom_report_front']) {
|
||||
$custom_font = $config['custom_report_front_font'];
|
||||
$logo = $config['custom_report_front_logo'];
|
||||
|
@ -1098,7 +1138,6 @@ switch ($action) {
|
|||
$good_format = false;
|
||||
switch ($action) {
|
||||
case 'update':
|
||||
|
||||
$values = [];
|
||||
$values['id_report'] = $idReport;
|
||||
// ---------------------------------------------------
|
||||
|
@ -1132,7 +1171,6 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'event_report_log':
|
||||
|
||||
$agents_to_report = get_parameter('id_agents3');
|
||||
$source = get_parameter('source', '');
|
||||
$search = get_parameter('search', '');
|
||||
|
@ -1154,7 +1192,7 @@ switch ($action) {
|
|||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$interval_max = get_parameter('max_interval');
|
||||
$interval_min = get_parameter('min_interval');
|
||||
// Checks intervals fields
|
||||
// Checks intervals fields.
|
||||
if (preg_match('/^(\-)*[0-9]*\.?[0-9]+$/', $interval_max) and preg_match('/^(\-)*[0-9]*\.?[0-9]+$/', $interval_min)) {
|
||||
$good_format = true;
|
||||
}
|
||||
|
@ -1209,9 +1247,7 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'netflow_area':
|
||||
case 'netflow_pie':
|
||||
case 'netflow_data':
|
||||
case 'netflow_statistics':
|
||||
case 'netflow_summary':
|
||||
$values['text'] = get_parameter('netflow_filter');
|
||||
$values['description'] = get_parameter('description');
|
||||
|
@ -1223,9 +1259,21 @@ switch ($action) {
|
|||
|
||||
case 'availability':
|
||||
// HACK it is saved in show_graph field.
|
||||
// Show interfaces instead the modules
|
||||
// Show interfaces instead the modules.
|
||||
$values['show_graph'] = get_parameter('checkbox_show_address_agent');
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['total_time'] = get_parameter('total_time');
|
||||
$values['time_failed'] = get_parameter('time_failed');
|
||||
$values['time_in_ok_status'] = get_parameter('time_in_ok_status');
|
||||
$values['time_in_unknown_status'] = get_parameter('time_in_unknown_status');
|
||||
$values['time_of_not_initialized_module'] = get_parameter('time_of_not_initialized_module');
|
||||
$values['time_of_downtime'] = get_parameter('time_of_downtime');
|
||||
$values['total_checks'] = get_parameter('total_checks');
|
||||
$values['checks_failed'] = get_parameter('checks_failed');
|
||||
$values['checks_in_ok_status'] = get_parameter('checks_in_ok_status');
|
||||
$values['unknown_checks'] = get_parameter('unknown_checks');
|
||||
$values['agent_max_value'] = get_parameter('agent_max_value');
|
||||
$values['agent_min_value'] = get_parameter('agent_min_value');
|
||||
$good_format = true;
|
||||
break;
|
||||
|
||||
|
@ -1247,6 +1295,12 @@ switch ($action) {
|
|||
$good_format = true;
|
||||
break;
|
||||
|
||||
case 'nt_top_n':
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$good_format = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n'] = get_parameter('radiobutton_max_min_avg', 0);
|
||||
|
@ -1254,6 +1308,7 @@ switch ($action) {
|
|||
$values['text'] = get_parameter('text');
|
||||
$values['show_graph'] = get_parameter('combo_graph_options');
|
||||
$good_format = true;
|
||||
break;
|
||||
}
|
||||
|
||||
$values['id_agent'] = get_parameter('id_agent');
|
||||
|
@ -1278,6 +1333,19 @@ switch ($action) {
|
|||
$values['friday'] = get_parameter('friday', 0);
|
||||
$values['saturday'] = get_parameter('saturday', 0);
|
||||
$values['sunday'] = get_parameter('sunday', 0);
|
||||
$values['total_time'] = get_parameter('total_time', 0);
|
||||
$values['time_failed'] = get_parameter('time_failed', 0);
|
||||
$values['time_in_ok_status'] = get_parameter('time_in_ok_status', 0);
|
||||
$values['time_in_unknown_status'] = get_parameter('time_in_unknown_status', 0);
|
||||
$values['time_of_not_initialized_module'] = get_parameter('time_of_not_initialized_module', 0);
|
||||
$values['time_of_downtime'] = get_parameter('time_of_downtime', 0);
|
||||
$values['total_checks'] = get_parameter('total_checks', 0);
|
||||
$values['checks_failed'] = get_parameter('checks_failed', 0);
|
||||
$values['checks_in_ok_status'] = get_parameter('checks_in_ok_status', 0);
|
||||
$values['unknown_checks'] = get_parameter('unknown_checks', 0);
|
||||
$values['agent_max_value'] = get_parameter('agent_max_value', 0);
|
||||
$values['agent_min_value'] = get_parameter('agent_min_value', 0);
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
case 'postgresql':
|
||||
|
@ -1289,6 +1357,10 @@ switch ($action) {
|
|||
$values['time_from'] = '#to_date(\''.get_parameter('time_from').'\',\'hh24:mi:ss\')';
|
||||
$values['time_to'] = '#to_date(\''.get_parameter('time_to').'\', \'hh24:mi:ss\')';
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$values['group_by_agent'] = get_parameter('checkbox_row_group_by_agent');
|
||||
|
@ -1309,7 +1381,7 @@ switch ($action) {
|
|||
$values['server_name'] = get_parameter('combo_server');
|
||||
}
|
||||
|
||||
if ((($values['type'] == 'custom_graph') or ($values['type'] == 'automatic_custom_graph')) && ($values['id_gs'] == 0 || $values['id_gs'] == '')) {
|
||||
if ((($values['type'] == 'custom_graph') || ($values['type'] == 'automatic_custom_graph')) && ($values['id_gs'] == 0 || $values['id_gs'] == '')) {
|
||||
$resultOperationDB = false;
|
||||
break;
|
||||
}
|
||||
|
@ -1326,7 +1398,7 @@ switch ($action) {
|
|||
|
||||
$event_filter_search = get_parameter('filter_search', '');
|
||||
|
||||
// If metaconsole is activated
|
||||
// If metaconsole is activated.
|
||||
if ($config['metaconsole'] == 1 && defined('METACONSOLE')) {
|
||||
if (($values['type'] == 'custom_graph') or ($values['type'] == 'automatic_custom_graph')) {
|
||||
$id_gs = substr($values['id_gs'], 0, strpos($values['id_gs'], '|'));
|
||||
|
@ -1337,7 +1409,7 @@ switch ($action) {
|
|||
}
|
||||
}
|
||||
|
||||
// Get agent and server name
|
||||
// Get agent and server name.
|
||||
$agent_name_server = io_safe_output(get_parameter('agent'));
|
||||
|
||||
if (isset($agent_name_server)) {
|
||||
|
@ -1347,7 +1419,7 @@ switch ($action) {
|
|||
$server_name = substr($agent_name_server, $separator_pos);
|
||||
$server_name = str_replace('(', '', $server_name);
|
||||
$server_name = str_replace(')', '', $server_name);
|
||||
// Will update server_name variable
|
||||
// Will update server_name variable.
|
||||
$values['server_name'] = trim($server_name);
|
||||
$agent_name = substr($agent_name_server, 0, $separator_pos);
|
||||
}
|
||||
|
@ -1436,12 +1508,17 @@ switch ($action) {
|
|||
case 'MTBF':
|
||||
case 'MTTR':
|
||||
case 'simple_baseline_graph':
|
||||
case 'nt_top_n':
|
||||
if ($label != '') {
|
||||
$style['label'] = $label;
|
||||
} else {
|
||||
$style['label'] = '';
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$values['style'] = io_safe_input(json_encode($style));
|
||||
|
@ -1456,6 +1533,10 @@ switch ($action) {
|
|||
unset($values['type']);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$resultOperationDB = db_process_sql_update(
|
||||
|
@ -1477,7 +1558,7 @@ switch ($action) {
|
|||
$values['description'] = get_parameter('description');
|
||||
$label = get_parameter('label', '');
|
||||
|
||||
// Add macros name
|
||||
// Add macros name.
|
||||
$items_label = [];
|
||||
$items_label['type'] = get_parameter('type');
|
||||
$items_label['id_agent'] = get_parameter('id_agent');
|
||||
|
@ -1487,7 +1568,7 @@ switch ($action) {
|
|||
$values['name'] = reporting_label_macro($items_label, $name_it);
|
||||
|
||||
// Support for projection graph, prediction date and SLA reports
|
||||
// 'top_n_value', 'top_n' and 'text' fields will be reused for these types of report
|
||||
// 'top_n_value', 'top_n' and 'text' fields will be reused for these types of report.
|
||||
switch ($values['type']) {
|
||||
case 'projection_graph':
|
||||
$values['period'] = get_parameter('period1');
|
||||
|
@ -1576,9 +1657,7 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'netflow_area':
|
||||
case 'netflow_pie':
|
||||
case 'netflow_data':
|
||||
case 'netflow_statistics':
|
||||
case 'netflow_summary':
|
||||
$values['text'] = get_parameter('netflow_filter');
|
||||
$values['description'] = get_parameter('description');
|
||||
|
@ -1591,7 +1670,7 @@ switch ($action) {
|
|||
case 'availability':
|
||||
$values['period'] = get_parameter('period');
|
||||
// HACK it is saved in show_graph field.
|
||||
// Show interfaces instead the modules
|
||||
// Show interfaces instead the modules.
|
||||
$values['show_graph'] = get_parameter('checkbox_show_address_agent');
|
||||
$good_format = true;
|
||||
break;
|
||||
|
@ -1614,6 +1693,12 @@ switch ($action) {
|
|||
$good_format = true;
|
||||
break;
|
||||
|
||||
case 'nt_top_n':
|
||||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$values['period'] = get_parameter('period');
|
||||
$good_format = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n'] = get_parameter('radiobutton_max_min_avg', 0);
|
||||
|
@ -1660,6 +1745,10 @@ switch ($action) {
|
|||
$values['only_display_wrong'] = $only_display_wrong_tmp;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$values['monday'] = get_parameter('monday', 0);
|
||||
|
@ -1669,6 +1758,18 @@ switch ($action) {
|
|||
$values['friday'] = get_parameter('friday', 0);
|
||||
$values['saturday'] = get_parameter('saturday', 0);
|
||||
$values['sunday'] = get_parameter('sunday', 0);
|
||||
$values['total_time'] = get_parameter('total_time', 0);
|
||||
$values['time_failed'] = get_parameter('time_failed', 0);
|
||||
$values['time_in_ok_status'] = get_parameter('time_in_ok_status', 0);
|
||||
$values['time_in_unknown_status'] = get_parameter('time_in_unknown_status', 0);
|
||||
$values['time_of_not_initialized_module'] = get_parameter('time_of_not_initialized_module', 0);
|
||||
$values['time_of_downtime'] = get_parameter('time_of_downtime', 0);
|
||||
$values['total_checks'] = get_parameter('total_checks', 0);
|
||||
$values['checks_failed'] = get_parameter('checks_failed', 0);
|
||||
$values['checks_in_ok_status'] = get_parameter('checks_in_ok_status', 0);
|
||||
$values['unknown_checks'] = get_parameter('unknown_checks', 0);
|
||||
$values['agent_max_value'] = get_parameter('agent_max_value', 0);
|
||||
$values['agent_min_value'] = get_parameter('agent_min_value', 0);
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
case 'postgresql':
|
||||
|
@ -1680,6 +1781,10 @@ switch ($action) {
|
|||
$values['time_from'] = '#to_date(\''.get_parameter('time_from').'\',\'hh24:mi:ss\')';
|
||||
$values['time_to'] = '#to_date(\''.get_parameter('time_to').'\', \'hh24:mi:ss\')';
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$values['group_by_agent'] = get_parameter('checkbox_row_group_by_agent', 0);
|
||||
|
@ -1707,8 +1812,8 @@ switch ($action) {
|
|||
}
|
||||
}
|
||||
|
||||
if (($values['type'] == 'sql') or ($values['type'] == 'sql_graph_hbar')
|
||||
or ($values['type'] == 'sql_graph_vbar') or ($values['type'] == 'sql_graph_pie')
|
||||
if (($values['type'] == 'sql') || ($values['type'] == 'sql_graph_hbar')
|
||||
|| ($values['type'] == 'sql_graph_vbar') || ($values['type'] == 'sql_graph_pie')
|
||||
) {
|
||||
$values['treport_custom_sql_id'] = get_parameter('id_custom');
|
||||
if ($values['treport_custom_sql_id'] == 0) {
|
||||
|
@ -1750,7 +1855,7 @@ switch ($action) {
|
|||
|
||||
$event_filter_search = get_parameter('filter_search', '');
|
||||
|
||||
// Added for events items
|
||||
// Added for events items.
|
||||
$style['show_summary_group'] = $show_summary_group;
|
||||
$style['filter_event_severity'] = json_encode($filter_event_severity);
|
||||
$style['filter_event_type'] = json_encode($filter_event_type);
|
||||
|
@ -1772,6 +1877,10 @@ switch ($action) {
|
|||
$style['label'] = '';
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1809,12 +1918,17 @@ switch ($action) {
|
|||
case 'MTBF':
|
||||
case 'MTTR':
|
||||
case 'simple_baseline_graph':
|
||||
case 'nt_top_n':
|
||||
if ($label != '') {
|
||||
$style['label'] = $label;
|
||||
} else {
|
||||
$style['label'] = '';
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$values['style'] = io_safe_input(json_encode($style));
|
||||
|
@ -1829,6 +1943,10 @@ switch ($action) {
|
|||
unset($values['type']);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$result = db_process_sql_insert(
|
||||
|
@ -1858,6 +1976,10 @@ switch ($action) {
|
|||
WHERE id_report = '.$idReport
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
if ($max === false) {
|
||||
|
@ -1883,6 +2005,10 @@ switch ($action) {
|
|||
['id_rc' => $idItem]
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$resultOperationDB = true;
|
||||
|
@ -1890,7 +2016,8 @@ switch ($action) {
|
|||
|
||||
break;
|
||||
}
|
||||
// If fields dont have good format
|
||||
|
||||
// If fields dont have good format.
|
||||
else {
|
||||
$resultOperationDB = false;
|
||||
}
|
||||
|
@ -1898,7 +2025,7 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
default:
|
||||
if ($enterpriseEnable and $activeTab != 'advanced') {
|
||||
if ($enterpriseEnable && $activeTab != 'advanced') {
|
||||
$resultOperationDB = reporting_enterprise_update_action();
|
||||
}
|
||||
break;
|
||||
|
@ -1956,7 +2083,7 @@ switch ($action) {
|
|||
case 'agent':
|
||||
case 'type':
|
||||
|
||||
// Sort functionality for normal console
|
||||
// Sort functionality for normal console.
|
||||
if (!defined('METACONSOLE')) {
|
||||
switch ($field) {
|
||||
case 'module':
|
||||
|
@ -1990,6 +2117,10 @@ switch ($action) {
|
|||
case 'type':
|
||||
$sql = 'SELECT id_rc FROM treport_content WHERE %s ORDER BY type %s';
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$sql = sprintf($sql, 'id_report = '.$idReport, '%s');
|
||||
|
@ -2001,11 +2132,15 @@ switch ($action) {
|
|||
case 'down':
|
||||
$sql = sprintf($sql, 'DESC');
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$ids = db_get_all_rows_sql($sql);
|
||||
}
|
||||
// Sort functionality for metaconsole
|
||||
// Sort functionality for metaconsole.
|
||||
else if ($config['metaconsole'] == 1) {
|
||||
switch ($field) {
|
||||
case 'agent':
|
||||
|
@ -2023,14 +2158,14 @@ switch ($action) {
|
|||
foreach ($report_items as $report_item) {
|
||||
$connection = metaconsole_get_connection($report_item['server_name']);
|
||||
if (metaconsole_load_external_db($connection) != NOERR) {
|
||||
// ui_print_error_message ("Error connecting to ".$server_name);
|
||||
// ui_print_error_message ("Error connecting to ".$server_name);.
|
||||
}
|
||||
|
||||
switch ($field) {
|
||||
case 'agent':
|
||||
$agents_name = agents_get_agents(['id_agente' => $report_item['id_agent']], 'nombre');
|
||||
|
||||
// Item without agent
|
||||
// Item without agent.
|
||||
if (!$agents_name) {
|
||||
$element_name = '';
|
||||
} else {
|
||||
|
@ -2042,13 +2177,17 @@ switch ($action) {
|
|||
case 'module':
|
||||
$module_name = modules_get_agentmodule_name($report_item['id_agent_module']);
|
||||
|
||||
// Item without module
|
||||
// Item without module.
|
||||
if (!$module_name) {
|
||||
$element_name = '';
|
||||
} else {
|
||||
$element_name = $module_name;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
metaconsole_restore_db();
|
||||
|
@ -2056,7 +2195,7 @@ switch ($action) {
|
|||
$temp_sort[$report_item['id_rc']] = $element_name;
|
||||
}
|
||||
|
||||
// Performes sorting
|
||||
// Performes sorting.
|
||||
switch ($dir) {
|
||||
case 'up':
|
||||
asort($temp_sort);
|
||||
|
@ -2065,6 +2204,10 @@ switch ($action) {
|
|||
case 'down':
|
||||
arsort($temp_sort);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
foreach ($temp_sort as $temp_element_key => $temp_element_val) {
|
||||
|
@ -2073,13 +2216,13 @@ switch ($action) {
|
|||
$i++;
|
||||
}
|
||||
|
||||
// Free resources
|
||||
// Free resources.
|
||||
unset($temp_sort);
|
||||
unset($report_items);
|
||||
}
|
||||
break;
|
||||
|
||||
// Type case only depends of local database
|
||||
// Type case only depends of local database.
|
||||
case 'type':
|
||||
$sql = 'SELECT id_rc
|
||||
FROM treport_content
|
||||
|
@ -2098,10 +2241,13 @@ switch ($action) {
|
|||
case 'down':
|
||||
$sql = sprintf($sql, 'DESC');
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$ids = db_get_all_rows_sql($sql);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2140,6 +2286,10 @@ switch ($action) {
|
|||
WHERE id_rc = '.$idItem
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
// db_get_value_filter('order', 'treport_content', array('id_rc' => $idItem));
|
||||
|
@ -2151,6 +2301,10 @@ switch ($action) {
|
|||
case 'down':
|
||||
$newOrder = ($oldOrder + 1);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
|
@ -2188,6 +2342,10 @@ switch ($action) {
|
|||
false
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
if ($resultOperationDB !== false) {
|
||||
|
@ -2217,13 +2375,17 @@ switch ($action) {
|
|||
false
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
// Added for report templates
|
||||
// Added for report templates.
|
||||
default:
|
||||
if ($enterpriseEnable) {
|
||||
$buttons = [
|
||||
|
@ -2247,7 +2409,7 @@ switch ($action) {
|
|||
break;
|
||||
}
|
||||
|
||||
// Page header for metaconsole
|
||||
// Page header for metaconsole.
|
||||
if ($enterpriseEnable and defined('METACONSOLE')) {
|
||||
// Bread crumbs
|
||||
ui_meta_add_breadcrumb(
|
||||
|
@ -2259,10 +2421,10 @@ switch ($action) {
|
|||
|
||||
ui_meta_print_page_header($nav_bar);
|
||||
|
||||
// Print header
|
||||
// Print header.
|
||||
ui_meta_print_header(__('Reporting'), '', $buttons);
|
||||
}
|
||||
// Page header for normal console
|
||||
// Page header for normal console.
|
||||
else {
|
||||
ui_print_page_header($subsection, 'images/op_reporting.png', false, '', false, $buttons, false, '', 60);
|
||||
}
|
||||
|
@ -2325,9 +2487,9 @@ if ($idReport != 0) {
|
|||
$textReportName = __('Create Custom Report');
|
||||
}
|
||||
|
||||
// Page header for metaconsole
|
||||
// Page header for metaconsole.
|
||||
if ($enterpriseEnable and defined('METACONSOLE')) {
|
||||
// Bread crumbs
|
||||
// Bread crumbs.
|
||||
ui_meta_add_breadcrumb(
|
||||
[
|
||||
'link' => 'index.php?sec=reporting&sec2=godmode/reporting/reporting_builder&pure='.$pure,
|
||||
|
@ -2337,7 +2499,7 @@ if ($enterpriseEnable and defined('METACONSOLE')) {
|
|||
|
||||
ui_meta_print_page_header($nav_bar);
|
||||
|
||||
// Print header
|
||||
// Print header.
|
||||
ui_meta_print_header(__('Reporting').$textReportName, '', $buttons);
|
||||
} else {
|
||||
ui_print_page_header(
|
||||
|
|
|
@ -15,8 +15,6 @@ if (! check_acl($config['id_user'], 0, 'AW')) {
|
|||
|
||||
ui_require_css_file('discovery');
|
||||
|
||||
ui_print_page_header(__('Discover'), '', false, '', true);
|
||||
|
||||
|
||||
/**
|
||||
* Mask class names.
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
* Deprectated.
|
||||
*
|
||||
* @category Extensions
|
||||
* @category Deprectated
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @subpackage Recion task script
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
|
@ -26,481 +25,3 @@
|
|||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access Recon Task Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once $config['homedir'].'/include/functions_network_profiles.php';
|
||||
|
||||
if (check_acl($config['id_user'], 0, 'AW')) {
|
||||
$options[]['text'] = "<a href='index.php?sec=estado&sec2=operation/servers/recon_view'>".html_print_image('images/operation.png', true, ['title' => __('View')]).'</a>';
|
||||
}
|
||||
|
||||
$user_groups_w = users_get_groups(false, 'PM', true, false, null, 'id_grupo');
|
||||
$user_groups_w = array_keys($user_groups_w);
|
||||
|
||||
$user_groups_r = users_get_groups(false, 'AW', true, false, null, 'id_grupo');
|
||||
$user_groups_r = array_keys($user_groups_r);
|
||||
|
||||
// Headers.
|
||||
ui_print_page_header(
|
||||
__('Manage recontask'),
|
||||
'images/gm_servers.png',
|
||||
false,
|
||||
'',
|
||||
true,
|
||||
$options
|
||||
);
|
||||
|
||||
|
||||
// --------------------------------
|
||||
// DELETE A RECON TASKs.
|
||||
// --------------------------------
|
||||
if (isset($_GET['delete'])) {
|
||||
$id = get_parameter_get('delete');
|
||||
|
||||
$result = db_process_sql_delete('trecon_task', ['id_rt' => $id]);
|
||||
|
||||
if ($result !== false) {
|
||||
ui_print_success_message(__('Successfully deleted recon task'));
|
||||
} else {
|
||||
ui_print_error_message(__('Error deleting recon task'));
|
||||
}
|
||||
} else if (isset($_GET['disabled'])) {
|
||||
$id = get_parameter_get('id');
|
||||
$disabled = get_parameter_get('disabled');
|
||||
|
||||
$result = db_process_sql_update(
|
||||
'trecon_task',
|
||||
['disabled' => $disabled],
|
||||
['id_rt' => $id]
|
||||
);
|
||||
|
||||
if ($result !== false) {
|
||||
ui_print_success_message(__('Successfully updated recon task'));
|
||||
// If the action is enabled, we force recon_task to be queued asap.
|
||||
if ($disabled == 0) {
|
||||
servers_force_recon_task($id);
|
||||
}
|
||||
} else {
|
||||
ui_print_error_message(__('Error updating recon task'));
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// GET PARAMETERS IF UPDATE OR CREATE.
|
||||
// --------------------------------
|
||||
if ((isset($_GET['update'])) || ((isset($_GET['create'])))) {
|
||||
$name = get_parameter_post('name');
|
||||
$network = get_parameter_post('network');
|
||||
$description = get_parameter_post('description');
|
||||
$id_recon_server = get_parameter_post('id_recon_server');
|
||||
$interval = get_parameter_post('interval');
|
||||
$id_group = get_parameter_post('id_group');
|
||||
$create_incident = get_parameter_post('create_incident');
|
||||
$id_network_profile = get_parameter_post('id_network_profile');
|
||||
$recon_ports = get_parameter_post('recon_ports', '');
|
||||
$id_os = get_parameter_post('id_os', 10);
|
||||
$snmp_community = get_parameter_post('snmp_community', 'public');
|
||||
$id_recon_script = get_parameter('id_recon_script', 0);
|
||||
$mode = get_parameter('mode', '');
|
||||
$field1 = get_parameter('_field1_', '');
|
||||
$field2 = get_parameter('_field2_', '');
|
||||
$field3 = get_parameter('_field3_', '');
|
||||
$field4 = get_parameter('_field4_', '');
|
||||
$snmp_version = get_parameter_post('snmp_version');
|
||||
$snmp3_auth_user = get_parameter_post('snmp_auth_user');
|
||||
$snmp3_auth_pass = get_parameter_post('snmp_auth_pass');
|
||||
$snmp3_privacy_method = get_parameter_post('snmp_privacy_method');
|
||||
$snmp3_privacy_pass = get_parameter_post('snmp_privacy_pass');
|
||||
$snmp3_auth_method = get_parameter_post('snmp_auth_method');
|
||||
$snmp3_security_level = get_parameter_post('snmp_security_level');
|
||||
|
||||
|
||||
if ($mode == 'network_sweep') {
|
||||
$id_recon_script = 0;
|
||||
} else {
|
||||
$id_network_profile = 0;
|
||||
}
|
||||
|
||||
$os_detect = (int) get_parameter('os_detect', 0);
|
||||
$resolve_names = (int) get_parameter('resolve_names', 0);
|
||||
$parent_detection = (int) get_parameter('parent_detection', 0);
|
||||
$parent_recursion = (int) get_parameter('parent_recursion', 1);
|
||||
$alias_as_name = (int) get_parameter('alias_as_name', 0);
|
||||
$snmp_enabled = (int) get_parameter('snmp_enabled', 0);
|
||||
$vlan_enabled = (int) get_parameter('vlan_enabled', 0);
|
||||
// Get macros.
|
||||
$macros = (string) get_parameter('macros');
|
||||
|
||||
if (!empty($macros)) {
|
||||
$macros = json_decode(base64_decode($macros), true);
|
||||
|
||||
if (isset($macros) === true && is_array($macros) === true) {
|
||||
foreach ($macros as $k => $m) {
|
||||
$macros[$k]['value'] = get_parameter($m['macro'], '');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$macros = io_json_mb_encode($macros);
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// UPDATE A RECON TASK.
|
||||
// --------------------------------
|
||||
if (isset($_GET['update'])) {
|
||||
$id = get_parameter_get('update');
|
||||
|
||||
$values = [
|
||||
'snmp_community' => $snmp_community,
|
||||
'id_os' => $id_os,
|
||||
'name' => $name,
|
||||
'subnet' => $network,
|
||||
'description' => $description,
|
||||
'id_recon_server' => $id_recon_server,
|
||||
'create_incident' => $create_incident,
|
||||
'id_group' => $id_group,
|
||||
'interval_sweep' => $interval,
|
||||
'id_network_profile' => $id_network_profile,
|
||||
'recon_ports' => $recon_ports,
|
||||
'id_recon_script' => $id_recon_script,
|
||||
'field1' => $field1,
|
||||
'field2' => $field2,
|
||||
'field3' => $field3,
|
||||
'field4' => $field4,
|
||||
'os_detect' => $os_detect,
|
||||
'resolve_names' => $resolve_names,
|
||||
'parent_detection' => $parent_detection,
|
||||
'parent_recursion' => $parent_recursion,
|
||||
'macros' => $macros,
|
||||
'alias_as_name' => $alias_as_name,
|
||||
'snmp_enabled' => $snmp_enabled,
|
||||
'vlan_enabled' => $vlan_enabled,
|
||||
'snmp_version' => $snmp_version,
|
||||
];
|
||||
|
||||
$values_v3 = [
|
||||
'snmp_auth_user' => $snmp3_auth_user,
|
||||
'snmp_auth_pass' => $snmp3_auth_pass,
|
||||
'snmp_privacy_method' => $snmp3_privacy_method,
|
||||
'snmp_privacy_pass' => $snmp3_privacy_pass,
|
||||
'snmp_auth_method' => $snmp3_auth_method,
|
||||
'snmp_security_level' => $snmp3_security_level,
|
||||
];
|
||||
if ($values['snmp_version'] == '1' || $values['snmp_version'] == '2' || $values['snmp_version'] == '2c') {
|
||||
$values_v3 = [
|
||||
'snmp_auth_user' => '',
|
||||
'snmp_auth_pass' => '',
|
||||
'snmp_privacy_method' => '',
|
||||
'snmp_privacy_pass' => '',
|
||||
'snmp_auth_method' => '',
|
||||
'snmp_security_level' => '',
|
||||
];
|
||||
}
|
||||
|
||||
$values = array_merge($values, $values_v3);
|
||||
|
||||
$where = ['id_rt' => $id];
|
||||
|
||||
$reason = '';
|
||||
if ($name != '') {
|
||||
if (empty($id_recon_script)) {
|
||||
if (!preg_match('/[0-9]+.+[0-9]+.+[0-9]+.+[0-9]+\/+[0-9]/', $network)) {
|
||||
$reason = __('Wrong format in Subnet field');
|
||||
$result = false;
|
||||
} else {
|
||||
$result = db_process_sql_update(
|
||||
'trecon_task',
|
||||
$values,
|
||||
$where
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$result = db_process_sql_update(
|
||||
'trecon_task',
|
||||
$values,
|
||||
$where
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$result = false;
|
||||
}
|
||||
|
||||
if ($result !== false) {
|
||||
ui_print_success_message(__('Successfully updated recon task'));
|
||||
} else {
|
||||
ui_print_error_message(__('Error updating recon task'));
|
||||
echo $reason;
|
||||
include 'manage_recontask_form.php';
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// CREATE A RECON TASK
|
||||
// --------------------------------
|
||||
if (isset($_GET['create'])) {
|
||||
$values = [
|
||||
'name' => $name,
|
||||
'subnet' => $network,
|
||||
'description' => $description,
|
||||
'id_recon_server' => $id_recon_server,
|
||||
'create_incident' => $create_incident,
|
||||
'id_group' => $id_group,
|
||||
'id_network_profile' => $id_network_profile,
|
||||
'interval_sweep' => $interval,
|
||||
'id_os' => $id_os,
|
||||
'recon_ports' => $recon_ports,
|
||||
'snmp_community' => $snmp_community,
|
||||
'id_recon_script' => $id_recon_script,
|
||||
'field1' => $field1,
|
||||
'field2' => $field2,
|
||||
'field3' => $field3,
|
||||
'field4' => $field4,
|
||||
'os_detect' => $os_detect,
|
||||
'resolve_names' => $resolve_names,
|
||||
'parent_detection' => $parent_detection,
|
||||
'parent_recursion' => $parent_recursion,
|
||||
'macros' => $macros,
|
||||
'alias_as_name' => $alias_as_name,
|
||||
'snmp_enabled' => $snmp_enabled,
|
||||
'vlan_enabled' => $vlan_enabled,
|
||||
'snmp_version' => $snmp_version,
|
||||
];
|
||||
|
||||
$values_v3 = [
|
||||
'snmp_auth_user' => $snmp3_auth_user,
|
||||
'snmp_auth_pass' => $snmp3_auth_pass,
|
||||
'snmp_privacy_method' => $snmp3_privacy_method,
|
||||
'snmp_privacy_pass' => $snmp3_privacy_pass,
|
||||
'snmp_auth_method' => $snmp3_auth_method,
|
||||
'snmp_security_level' => $snmp3_security_level,
|
||||
];
|
||||
if ($values['snmp_version'] == '1' || $values['snmp_version'] == '2' || $values['snmp_version'] == '2c') {
|
||||
$values_v3 = [
|
||||
'snmp_auth_user' => '',
|
||||
'snmp_auth_pass' => '',
|
||||
'snmp_privacy_method' => '',
|
||||
'snmp_privacy_pass' => '',
|
||||
'snmp_auth_method' => '',
|
||||
'snmp_security_level' => '',
|
||||
];
|
||||
}
|
||||
|
||||
if ($values['snmp_version'] == '3') {
|
||||
$values['vlan_enabled'] = 0;
|
||||
}
|
||||
|
||||
$values = array_merge($values, $values_v3);
|
||||
|
||||
$name = io_safe_output($name);
|
||||
$name = trim($name, ' ');
|
||||
$name = io_safe_input($name);
|
||||
$reason = '';
|
||||
|
||||
if ($name != '') {
|
||||
$name_exists = (bool) db_get_value('name', 'trecon_task', 'name', $name);
|
||||
|
||||
if (empty($id_recon_script)) {
|
||||
if ($name_exists && (!preg_match('/[0-9]+.+[0-9]+.+[0-9]+.+[0-9]+\/+[0-9]/', $network))) {
|
||||
$reason = __('Recon-task name already exists and incorrect format in Subnet field');
|
||||
$result = false;
|
||||
} else if (!preg_match('/[0-9]+.+[0-9]+.+[0-9]+.+[0-9]+\/+[0-9]/', $network)) {
|
||||
$reason = __('Wrong format in Subnet field');
|
||||
$result = false;
|
||||
} else if ($name_exists) {
|
||||
$reason = __('Recon-task name already exists');
|
||||
$result = false;
|
||||
} else {
|
||||
$result = db_process_sql_insert('trecon_task', $values);
|
||||
}
|
||||
} else {
|
||||
if ($name_exists) {
|
||||
$reason = __('Recon-task name already exists');
|
||||
$result = false;
|
||||
} else {
|
||||
$result = db_process_sql_insert('trecon_task', $values);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$reason = 'The field "Task name" is empty';
|
||||
$result = false;
|
||||
}
|
||||
|
||||
if ($result !== false) {
|
||||
ui_print_success_message(__('Successfully created recon task'));
|
||||
} else {
|
||||
ui_print_error_message(__('Error creating recon task'));
|
||||
echo $reason;
|
||||
include 'manage_recontask_form.php';
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------
|
||||
// SHOW TABLE WITH ALL RECON TASKs.
|
||||
// --------------------------------
|
||||
// Pandora Admin must see all columns.
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
$sql = sprintf(
|
||||
'SELECT *
|
||||
FROM trecon_task RT, tusuario_perfil UP
|
||||
WHERE
|
||||
UP.id_usuario = "%s" AND UP.id_grupo = RT.id_group',
|
||||
$config['id_user']
|
||||
);
|
||||
|
||||
$result = db_get_all_rows_sql($sql);
|
||||
} else {
|
||||
$result = db_get_all_rows_in_table('trecon_task');
|
||||
}
|
||||
|
||||
$color = 1;
|
||||
if ($result !== false) {
|
||||
$table = new StdClass();
|
||||
$table->head = [
|
||||
__('Name'),
|
||||
__('Network'),
|
||||
__('Mode'),
|
||||
__('Group'),
|
||||
__('SNMP Version'),
|
||||
__('Incident'),
|
||||
__('OS'),
|
||||
__('Interval'),
|
||||
__('Ports'),
|
||||
__('Action'),
|
||||
];
|
||||
$table->align = [
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
'left',
|
||||
];
|
||||
$table->width = '100%';
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
$table->class = 'databox data';
|
||||
$table->data = [];
|
||||
|
||||
$table->style[8] = 'text-align: left;';
|
||||
$table->size[8] = '15%';
|
||||
|
||||
foreach ($result as $row) {
|
||||
if (in_array($row['id_group'], $user_groups_r)) {
|
||||
$data = [];
|
||||
$data[0] = $row['name'];
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
$data[1] = $row['subnet'];
|
||||
} else {
|
||||
$data[1] = '-';
|
||||
}
|
||||
|
||||
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
// Network recon task.
|
||||
$data[2] = html_print_image('images/network.png', true, ['title' => __('Network recon task')]).' ';
|
||||
$data[2] .= network_profiles_get_name($row['id_network_profile']);
|
||||
$mode_name = '';
|
||||
} else {
|
||||
// APP recon task.
|
||||
$data[2] = html_print_image('images/plugin.png', true).' ';
|
||||
$mode_name = db_get_sql(sprintf('SELECT name FROM trecon_script WHERE id_recon_script = %d', $row['id_recon_script']));
|
||||
$data[2] .= $mode_name;
|
||||
}
|
||||
|
||||
|
||||
// GROUP.
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
$data[3] = ui_print_group_icon($row['id_group'], true);
|
||||
} else {
|
||||
$data[3] = '-';
|
||||
}
|
||||
|
||||
// SNMP VERSION.
|
||||
if ($row['snmp_version'] == '1') {
|
||||
$data[4] = 'v. 1';
|
||||
} else if ($row['snmp_version'] == '2') {
|
||||
$data[4] = 'v. 2';
|
||||
} else if ($row['snmp_version'] == '2c') {
|
||||
$data[4] = 'v. 2c';
|
||||
} else if ($row['snmp_version'] == '3') {
|
||||
$data[4] = 'v. 3';
|
||||
}
|
||||
|
||||
|
||||
|
||||
// INCIDENT.
|
||||
$data[5] = (($row['create_incident'] == 1) ? __('Yes') : __('No'));
|
||||
|
||||
// OS.
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
$data[6] = (($row['id_os'] > 0) ? ui_print_os_icon($row['id_os'], false, true) : __('Any'));
|
||||
} else {
|
||||
$data[6] = '-';
|
||||
}
|
||||
|
||||
// INTERVAL.
|
||||
if ($row['interval_sweep'] == 0) {
|
||||
$data[7] = __('Manual');
|
||||
} else {
|
||||
$data[7] = human_time_description_raw($row['interval_sweep']);
|
||||
}
|
||||
|
||||
// PORTS.
|
||||
if ($row['id_recon_script'] == 0) {
|
||||
$data[8] = substr($row['recon_ports'], 0, 15);
|
||||
} else {
|
||||
$data[8] = '-';
|
||||
}
|
||||
|
||||
// ACTION.
|
||||
$task_group = $row['id_group'];
|
||||
|
||||
if (in_array($task_group, $user_groups_w)) {
|
||||
$data[9] = '<a href="index.php?sec=estado&sec2=operation/servers/recon_view">'.html_print_image('images/eye.png', true).'</a>';
|
||||
$data[9] .= '<a href="index.php?sec=gservers&sec2=godmode/servers/manage_recontask&delete='.$row['id_rt'].'">'.html_print_image('images/cross.png', true, ['border' => '0']).'</a>';
|
||||
if ($mode_name != 'IPAM Recon') {
|
||||
$data[9] .= '<a href="index.php?sec=gservers&sec2=godmode/servers/manage_recontask_form&update='.$row['id_rt'].'">'.html_print_image('images/config.png', true).'</a>';
|
||||
} else {
|
||||
$sql_ipam = 'select id from tipam_network where id_recon_task ='.$row['id_rt'];
|
||||
$id_recon_ipam = db_get_sql($sql_ipam);
|
||||
$data[9] .= '<a href="index.php?sec=godmode/extensions&sec2=enterprise/extensions/ipam&action=edit&id='.$id_recon_ipam.'">'.html_print_image('images/config.png', true).'</a>';
|
||||
}
|
||||
|
||||
if ($row['disabled'] == 0) {
|
||||
$data[9] .= '<a href="index.php?sec=gservers&sec2=godmode/servers/manage_recontask&id='.$row['id_rt'].'&disabled=1">'.html_print_image('images/lightbulb.png', true).'</a>';
|
||||
} else {
|
||||
$data[9] .= '<a href="index.php?sec=gservers&sec2=godmode/servers/manage_recontask&id='.$row['id_rt'].'&disabled=0">'.html_print_image('images/lightbulb_off.png', true).'</a>';
|
||||
}
|
||||
}
|
||||
|
||||
$table->data[] = $data;
|
||||
}
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
unset($table);
|
||||
} else {
|
||||
echo '<div class="nf">'.__('There are no recon task configured').'</div>';
|
||||
}
|
||||
|
||||
echo '<div class="action-buttons" style="width: 99%;">';
|
||||
echo '<form method="post" action="index.php?sec=gservers&sec2=godmode/servers/manage_recontask_form&create">';
|
||||
echo html_print_submit_button(__('Create'), 'crt', false, 'class="sub next"', true);
|
||||
echo '</form>';
|
||||
echo '</div>';
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
* Deprectated.
|
||||
*
|
||||
* @category Extensions
|
||||
* @category deprecated
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @subpackage recon task
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
|
@ -26,910 +25,3 @@
|
|||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access Agent Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
require_once $config['homedir'].'/include/functions_users.php';
|
||||
|
||||
$user_groups = users_get_groups(false, 'AW', true, false, null, 'id_grupo');
|
||||
$user_groups = array_keys($user_groups);
|
||||
|
||||
if (is_ajax()) {
|
||||
$get_explanation = (bool) get_parameter('get_explanation', 0);
|
||||
|
||||
if ($get_explanation) {
|
||||
$id = (int) get_parameter('id', 0);
|
||||
|
||||
$explanation = db_get_value(
|
||||
'description',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id
|
||||
);
|
||||
|
||||
echo io_safe_output($explanation);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$get_recon_script_macros = get_parameter('get_recon_script_macros');
|
||||
if ($get_recon_script_macros) {
|
||||
$id_recon_script = (int) get_parameter('id');
|
||||
$id_recon_task = (int) get_parameter('id_rt');
|
||||
|
||||
if (!empty($id_recon_task) && empty($id_recon_script)) {
|
||||
$recon_script_macros = db_get_value(
|
||||
'macros',
|
||||
'trecon_task',
|
||||
'id_rt',
|
||||
$id_recon_task
|
||||
);
|
||||
} else if (!empty($id_recon_task)) {
|
||||
$recon_task_id_rs = (int) db_get_value(
|
||||
'id_recon_script',
|
||||
'trecon_task',
|
||||
'id_rt',
|
||||
$id_recon_task
|
||||
);
|
||||
|
||||
if ($id_recon_script == $recon_task_id_rs) {
|
||||
$recon_script_macros = db_get_value(
|
||||
'macros',
|
||||
'trecon_task',
|
||||
'id_rt',
|
||||
$id_recon_task
|
||||
);
|
||||
} else {
|
||||
$recon_script_macros = db_get_value(
|
||||
'macros',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id_recon_script
|
||||
);
|
||||
}
|
||||
} else if (!empty($id_recon_script)) {
|
||||
$recon_script_macros = db_get_value(
|
||||
'macros',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id_recon_script
|
||||
);
|
||||
} else {
|
||||
$recon_script_macros = [];
|
||||
}
|
||||
|
||||
$macros = [];
|
||||
$macros['base64'] = base64_encode($recon_script_macros);
|
||||
$macros['array'] = json_decode($recon_script_macros, true);
|
||||
|
||||
echo io_json_mb_encode($macros);
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Edit mode.
|
||||
if (isset($_GET['update']) || (isset($_GET['upd']))) {
|
||||
$update_recon = true;
|
||||
if (isset($_GET['upd'])) {
|
||||
if ($_GET['upd'] != 'update') {
|
||||
$update_recon = false;
|
||||
} else {
|
||||
$id_rt = get_parameter('upd');
|
||||
}
|
||||
}
|
||||
|
||||
if ($update_recon) {
|
||||
if (!isset($id_rt)) {
|
||||
$id_rt = (int) get_parameter_get('update');
|
||||
}
|
||||
|
||||
$row = db_get_row('trecon_task', 'id_rt', $id_rt);
|
||||
$name = $row['name'];
|
||||
$network = $row['subnet'];
|
||||
$id_recon_server = $row['id_recon_server'];
|
||||
$description = $row['description'];
|
||||
$interval = $row['interval_sweep'];
|
||||
$id_group = $row['id_group'];
|
||||
$create_incident = $row['create_incident'];
|
||||
$id_network_profile = $row['id_network_profile'];
|
||||
$id_os = $row['id_os'];
|
||||
$recon_ports = $row['recon_ports'];
|
||||
$snmp_community = $row['snmp_community'];
|
||||
$snmp_version = $row['snmp_version'];
|
||||
$snmp3_auth_user = $row['snmp_auth_user'];
|
||||
$snmp3_auth_pass = $row['snmp_auth_pass'];
|
||||
$snmp3_privacy_method = $row['snmp_privacy_method'];
|
||||
$snmp3_privacy_pass = $row['snmp_privacy_pass'];
|
||||
$snmp3_auth_method = $row['snmp_auth_method'];
|
||||
$snmp3_security_level = $row['snmp_security_level'];
|
||||
$id_recon_script = $row['id_recon_script'];
|
||||
$field1 = $row['field1'];
|
||||
$field2 = $row['field2'];
|
||||
$field3 = $row['field3'];
|
||||
$field4 = $row['field4'];
|
||||
if ($id_recon_script == 0) {
|
||||
$mode = 'network_sweep';
|
||||
} else {
|
||||
$mode = 'recon_script';
|
||||
}
|
||||
|
||||
$os_detect = $row['os_detect'];
|
||||
$resolve_names = $row['resolve_names'];
|
||||
$os_detect = $row['os_detect'];
|
||||
$parent_detection = $row['parent_detection'];
|
||||
$parent_recursion = $row['parent_recursion'];
|
||||
$macros = $row['macros'];
|
||||
$alias_as_name = $row['alias_as_name'];
|
||||
$snmp_enabled = $row['snmp_enabled'];
|
||||
$vlan_enabled = $row['vlan_enabled'];
|
||||
|
||||
$name_script = db_get_value(
|
||||
'name',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id_recon_script
|
||||
);
|
||||
|
||||
if (! in_array($id_group, $user_groups)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access Recon Task Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else if (isset($_GET['create']) || isset($_GET['crt'])) {
|
||||
$create_recon = true;
|
||||
if (isset($_GET['crt'])) {
|
||||
if ($_GET['crt'] != 'Create') {
|
||||
$create_recon = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($create_recon) {
|
||||
$id_rt = -1;
|
||||
$name = get_parameter('name');
|
||||
$network = get_parameter('network');
|
||||
$description = get_parameter('description');
|
||||
$id_recon_server = 0;
|
||||
$interval = 0;
|
||||
$id_group = 0;
|
||||
$create_incident = 1;
|
||||
$snmp_community = 'public';
|
||||
$snmp3_auth_user = '';
|
||||
$snmp3_auth_pass = '';
|
||||
$snmp_version = 1;
|
||||
$snmp3_privacy_method = '';
|
||||
$snmp3_privacy_pass = '';
|
||||
$snmp3_auth_method = '';
|
||||
$snmp3_security_level = '';
|
||||
$id_network_profile = 0;
|
||||
$id_os = -1;
|
||||
$recon_ports = '';
|
||||
$field1 = '';
|
||||
$field2 = '';
|
||||
$field3 = '';
|
||||
$field4 = '';
|
||||
$id_recon_script = 0;
|
||||
$mode = 'network_sweep';
|
||||
$os_detect = 0;
|
||||
$resolve_names = 0;
|
||||
$parent_detection = 1;
|
||||
$parent_recursion = 5;
|
||||
$macros = '';
|
||||
$alias_as_name = 0;
|
||||
$snmp_enabled = 0;
|
||||
$vlan_enabled = 0;
|
||||
}
|
||||
|
||||
$modify = false;
|
||||
if (($name != '') || ($network != '')) {
|
||||
$modify = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$modify) {
|
||||
// Headers.
|
||||
ui_print_page_header(__('Manage recontask'), '', false, 'recontask', true);
|
||||
}
|
||||
|
||||
$is_windows = strtoupper(substr(PHP_OS, 0, 3)) == 'WIN';
|
||||
if ($is_windows) {
|
||||
echo '<div class="notify">';
|
||||
echo __('Warning').': '.__('By default, in Windows, %s only support Standard network sweep, not custom scripts', get_product_name());
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->id = 'table_recon';
|
||||
$table->width = '100%';
|
||||
$table->cellspacing = 4;
|
||||
$table->cellpadding = 4;
|
||||
$table->class = 'databox filters';
|
||||
|
||||
$table->rowclass[3] = 'network_sweep';
|
||||
$table->rowclass[5] = 'network_sweep';
|
||||
$table->rowclass[7] = 'network_sweep';
|
||||
$table->rowclass[8] = 'network_sweep';
|
||||
$table->rowclass[11] = 'network_sweep';
|
||||
$table->rowclass[12] = 'network_sweep';
|
||||
$table->rowclass[18] = 'network_sweep';
|
||||
$table->rowclass[19] = 'network_sweep';
|
||||
$table->rowclass[20] = 'network_sweep';
|
||||
$table->rowclass[21] = 'network_sweep';
|
||||
$table->rowclass[22] = 'network_sweep';
|
||||
$table->rowclass[23] = 'network_sweep';
|
||||
$table->rowclass[24] = 'network_sweep';
|
||||
$table->rowclass[25] = 'network_sweep recon_v3';
|
||||
$table->rowclass[26] = 'network_sweep recon_v3';
|
||||
$table->rowclass[27] = 'network_sweep recon_v3';
|
||||
$table->rowclass[28] = 'network_sweep recon_v3';
|
||||
$table->rowclass[29] = 'network_sweep recon_v3';
|
||||
$table->rowclass[30] = 'network_sweep recon_v3';
|
||||
|
||||
$table->rowclass[6] = 'recon_script';
|
||||
$table->rowclass[13] = 'recon_script';
|
||||
$table->rowclass[14] = 'recon_script';
|
||||
$table->rowclass[15] = 'recon_script';
|
||||
$table->rowclass[16] = 'recon_script';
|
||||
$table->rowclass[17] = 'recon_script';
|
||||
// Name.
|
||||
$table->data[0][0] = '<b>'.__('Task name').'</b>';
|
||||
$table->data[0][1] = html_print_input_text('name', $name, '', 25, 0, true);
|
||||
|
||||
// Discovery server.
|
||||
$table->data[1][0] = '<b>'.__('Discovery server').ui_print_help_tip(
|
||||
__('You must select a Discovery Server to run the Task, otherwise the Recon Task will never run'),
|
||||
true
|
||||
);
|
||||
|
||||
$sql = 'SELECT id_server, name
|
||||
FROM tserver
|
||||
WHERE server_type = 3
|
||||
ORDER BY name';
|
||||
$table->data[1][1] = html_print_select_from_sql(
|
||||
$sql,
|
||||
'id_recon_server',
|
||||
$id_recon_server,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
);
|
||||
|
||||
$fields['network_sweep'] = __('Network sweep');
|
||||
if (!$is_windows) {
|
||||
$fields['recon_script'] = __('Custom script');
|
||||
}
|
||||
|
||||
|
||||
$table->data[2][0] = '<b>'.__('Mode').'</b>';
|
||||
$table->data[2][1] = html_print_select(
|
||||
$fields,
|
||||
'mode',
|
||||
$mode,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
|
||||
// Network.
|
||||
$table->data[3][0] = '<b>'.__('Network').'</b>';
|
||||
$table->data[3][0] .= ui_print_help_tip(
|
||||
__('You can specify several networks, separated by commas, for example: 192.168.50.0/24,192.168.60.0/24'),
|
||||
true
|
||||
);
|
||||
$table->data[3][1] = html_print_input_text(
|
||||
'network',
|
||||
$network,
|
||||
'',
|
||||
25,
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// Interval.
|
||||
$interv_manual = 0;
|
||||
if ((int) $interval == 0) {
|
||||
$interv_manual = 1;
|
||||
}
|
||||
|
||||
$table->data[4][0] = '<b>'.__('Interval');
|
||||
$table->data[4][0] .= ui_print_help_tip(
|
||||
__('Manual interval means that it will be executed only On-demand'),
|
||||
true
|
||||
);
|
||||
|
||||
$values = [
|
||||
0 => __('Defined'),
|
||||
1 => __('Manual'),
|
||||
];
|
||||
$table->data[4][1] = html_print_select(
|
||||
$values,
|
||||
'interval_manual_defined',
|
||||
$interv_manual,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[4][1] .= '<span id="interval_manual_container">';
|
||||
$table->data[4][1] .= html_print_extended_select_for_time(
|
||||
'interval',
|
||||
$interval,
|
||||
'',
|
||||
'',
|
||||
'0',
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
$table->data[4][1] .= ui_print_help_tip(
|
||||
__('The minimum recomended interval for Recon Task is 5 minutes'),
|
||||
true
|
||||
);
|
||||
$table->data[4][1] .= '</span>';
|
||||
|
||||
|
||||
// Module template.
|
||||
$table->data[5][0] = '<b>'.__('Module template').'</b>';
|
||||
|
||||
$sql = 'SELECT id_np, name
|
||||
FROM tnetwork_profile
|
||||
ORDER BY name';
|
||||
$table->data[5][1] = html_print_select_from_sql(
|
||||
$sql,
|
||||
'id_network_profile',
|
||||
$id_network_profile,
|
||||
'',
|
||||
__('None'),
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// Recon script.
|
||||
$data[1] = '';
|
||||
$table->data[6][0] = '<b>'.__('Recon script').'</b>';
|
||||
|
||||
|
||||
$sql = "SELECT id_recon_script, name
|
||||
FROM trecon_script
|
||||
WHERE name <> 'IPAM Recon'
|
||||
ORDER BY name";
|
||||
if ($name_script != 'IPAM Recon') {
|
||||
$table->data[6][1] = html_print_select_from_sql(
|
||||
$sql,
|
||||
'id_recon_script',
|
||||
$id_recon_script,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
);
|
||||
$table->data[6][1] .= "<span id='spinner_recon_script' style='display: none;'>".html_print_image('images/spinner.gif', true).'</span>';
|
||||
$table->data[6][1] .= $data[1] .= html_print_input_hidden(
|
||||
'macros',
|
||||
base64_encode($macros),
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$table->data[6][1] = 'IPAM Recon';
|
||||
}
|
||||
|
||||
// OS.
|
||||
$table->data[7][0] = '<b>'.__('OS').'</b>';
|
||||
|
||||
$sql = 'SELECT id_os, name
|
||||
FROM tconfig_os
|
||||
ORDER BY name';
|
||||
$table->data[7][1] = html_print_select_from_sql(
|
||||
$sql,
|
||||
'id_os',
|
||||
$id_os,
|
||||
'',
|
||||
__('Any'),
|
||||
-1,
|
||||
true
|
||||
);
|
||||
|
||||
// Recon ports.
|
||||
$table->data[8][0] = '<b>'.__('Ports').'</b>';
|
||||
$table->data[8][1] = html_print_input_text(
|
||||
'recon_ports',
|
||||
$recon_ports,
|
||||
'',
|
||||
25,
|
||||
0,
|
||||
true
|
||||
);
|
||||
$table->data[8][1] .= ui_print_help_tip(
|
||||
__('Ports defined like: 80 or 80,443,512 or even 0-1024 (Like Nmap command line format). If dont want to do a sweep using portscan, left it in blank'),
|
||||
true
|
||||
);
|
||||
|
||||
// Group.
|
||||
$table->data[9][0] = '<b>'.__('Group');
|
||||
$groups = users_get_groups(false, 'PM', false);
|
||||
$table->data[9][1] = html_print_select_groups(
|
||||
false,
|
||||
'PM',
|
||||
false,
|
||||
'id_group',
|
||||
$id_group,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// Incident.
|
||||
$values = [
|
||||
0 => __('No'),
|
||||
1 => __('Yes'),
|
||||
];
|
||||
$table->data[10][0] = '<b>'.__('Incident');
|
||||
$table->data[10][1] = html_print_select(
|
||||
$values,
|
||||
'create_incident',
|
||||
$create_incident,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
).' '.ui_print_help_tip(
|
||||
__('Choose if the discovery of a new system creates an incident or not.'),
|
||||
true
|
||||
);
|
||||
|
||||
// Snmp_enabled.
|
||||
$table->data[11][0] = '<b>'.__('SNMP enabled');
|
||||
$table->data[11][1] = html_print_checkbox(
|
||||
'snmp_enabled',
|
||||
1,
|
||||
$snmp_enabled,
|
||||
true
|
||||
);
|
||||
|
||||
// SNMP default community.
|
||||
$table->data[12][0] = '<b>'.__('SNMP Default community');
|
||||
$table->data[12][0] .= ui_print_help_tip(
|
||||
__('You can specify several values, separated by commas, for example: public,mysecret,1234'),
|
||||
true
|
||||
);
|
||||
$table->data[12][1] = html_print_input_text(
|
||||
'snmp_community',
|
||||
$snmp_community,
|
||||
'',
|
||||
35,
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// SNMP version.
|
||||
$snmp_versions['1'] = 'v. 1';
|
||||
$snmp_versions['2'] = 'v. 2';
|
||||
$snmp_versions['2c'] = 'v. 2c';
|
||||
$snmp_versions['3'] = 'v. 3';
|
||||
$table->data[24][0] = '<b>'._('SNMP version');
|
||||
$table->data[24][1] = html_print_select(
|
||||
$snmp_versions,
|
||||
'snmp_version',
|
||||
$snmp_version,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[25][0] = '<b>'.__('Auth user');
|
||||
$table->data[25][1] = html_print_input_text(
|
||||
'snmp_auth_user',
|
||||
$snmp3_auth_user,
|
||||
'',
|
||||
15,
|
||||
60,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'',
|
||||
''
|
||||
);
|
||||
$table->data[26][0] = '<b>'.__('Auth password').ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
|
||||
$table->data[26][1] = html_print_input_password(
|
||||
'snmp_auth_pass',
|
||||
$snmp3_auth_pass,
|
||||
'',
|
||||
15,
|
||||
60,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
''
|
||||
);
|
||||
$table->data[26][1] .= html_print_input_hidden_extended(
|
||||
'active_snmp_v3',
|
||||
0,
|
||||
'active_snmp_v3_mmen',
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[27][0] = '<b>'.__('Privacy method');
|
||||
$table->data[27][1] = html_print_select(
|
||||
[
|
||||
'DES' => __('DES'),
|
||||
'AES' => __('AES'),
|
||||
],
|
||||
'snmp_privacy_method',
|
||||
$snmp3_privacy_method,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
''
|
||||
);
|
||||
$table->data[28][0] = '<b>'.__('Privacy pass').ui_print_help_tip(__('The pass length must be eight character minimum.'), true);
|
||||
$table->data[28][1] = html_print_input_password(
|
||||
'snmp_privacy_pass',
|
||||
$snmp3_privacy_pass,
|
||||
'',
|
||||
15,
|
||||
60,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
''
|
||||
);
|
||||
$table->data[29][0] = '<b>'.__('Auth method');
|
||||
$table->data[29][1] = html_print_select(
|
||||
[
|
||||
'MD5' => __('MD5'),
|
||||
'SHA' => __('SHA'),
|
||||
],
|
||||
'snmp_auth_method',
|
||||
$snmp3_auth_method,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
''
|
||||
);
|
||||
$table->data[30][0] = '<b>'.__('Security level');
|
||||
$table->data[30][1] = html_print_select(
|
||||
[
|
||||
'noAuthNoPriv' => __('Not auth and not privacy method'),
|
||||
'authNoPriv' => __('Auth and not privacy method'),
|
||||
'authPriv' => __('Auth and privacy method'),
|
||||
],
|
||||
'snmp_security_level',
|
||||
$snmp3_security_level,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
''
|
||||
);
|
||||
|
||||
// Explanation.
|
||||
$explanation = db_get_value(
|
||||
'description',
|
||||
'trecon_script',
|
||||
'id_recon_script',
|
||||
$id_recon_script
|
||||
);
|
||||
|
||||
$table->data[13][0] = '<b>'.__('Explanation').'</b>';
|
||||
$table->data[13][1] = "<span id='spinner_layout' style='display: none;'>".html_print_image('images/spinner.gif', true).'</span>'.html_print_textarea('explanation', 4, 60, $explanation, 'style="width: 388px;"', true);
|
||||
|
||||
// A hidden "model row" to clone it from javascript to add fields dynamicaly.
|
||||
$data = [];
|
||||
$data[0] = 'macro_desc';
|
||||
$data[0] .= ui_print_help_tip('macro_help', true);
|
||||
$data[1] = html_print_input_text(
|
||||
'macro_name',
|
||||
'macro_value',
|
||||
'',
|
||||
100,
|
||||
255,
|
||||
true
|
||||
);
|
||||
$table->colspan['macro_field'][1] = 3;
|
||||
$table->rowstyle['macro_field'] = 'display:none';
|
||||
$table->data['macro_field'] = $data;
|
||||
|
||||
// If there are $macros, we create the form fields.
|
||||
if (!empty($macros)) {
|
||||
$macros = json_decode($macros, true);
|
||||
|
||||
if (isset($macros) === true
|
||||
&& is_array($macros) === true
|
||||
) {
|
||||
foreach ($macros as $k => $m) {
|
||||
$data = [];
|
||||
$data[0] = '<b>'.$m['desc'].'</b>';
|
||||
if (!empty($m['help'])) {
|
||||
$data[0] .= ui_print_help_tip($m['help'], true);
|
||||
}
|
||||
|
||||
if ($m['hide']) {
|
||||
$data[1] = html_print_input_password(
|
||||
$m['macro'],
|
||||
$m['value'],
|
||||
'',
|
||||
100,
|
||||
255,
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$data[1] = html_print_input_text(
|
||||
$m['macro'],
|
||||
$m['value'],
|
||||
'',
|
||||
100,
|
||||
255,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$table->colspan['macro'.$m['macro']][1] = 3;
|
||||
$table->rowclass['macro'.$m['macro']] = 'macro_field';
|
||||
|
||||
$table->data['macro'.$m['macro']] = $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Comments.
|
||||
$table->data[18][0] = '<b>'.__('Comments');
|
||||
$table->data[18][1] = html_print_input_text(
|
||||
'description',
|
||||
$description,
|
||||
'',
|
||||
45,
|
||||
0,
|
||||
true
|
||||
);
|
||||
|
||||
// OS detection.
|
||||
$table->data[19][0] = '<b>'.__('OS detection');
|
||||
$table->data[19][1] = html_print_checkbox(
|
||||
'os_detect',
|
||||
1,
|
||||
$os_detect,
|
||||
true
|
||||
);
|
||||
|
||||
// Name resolution.
|
||||
$table->data[20][0] = '<b>'.__('Name resolution');
|
||||
$table->data[20][1] = html_print_checkbox(
|
||||
'resolve_names',
|
||||
1,
|
||||
$resolve_names,
|
||||
true
|
||||
);
|
||||
|
||||
// Parent detection.
|
||||
$table->data[21][0] = '<b>'.__('Parent detection');
|
||||
$table->data[21][1] = html_print_checkbox(
|
||||
'parent_detection',
|
||||
1,
|
||||
$parent_detection,
|
||||
true
|
||||
);
|
||||
|
||||
// Parent recursion.
|
||||
$table->data[22][0] = '<b>'.__('Parent recursion');
|
||||
$table->data[22][1] = html_print_input_text(
|
||||
'parent_recursion',
|
||||
$parent_recursion,
|
||||
'',
|
||||
5,
|
||||
0,
|
||||
true
|
||||
).ui_print_help_tip(
|
||||
__('Maximum number of parent hosts that will be created if parent detection is enabled.'),
|
||||
true
|
||||
);
|
||||
|
||||
// Vlan_enabled.
|
||||
$table->data[23][0] = '<b>'.__('Vlan enabled');
|
||||
$table->data[23][1] = html_print_checkbox(
|
||||
'vlan_enabled',
|
||||
1,
|
||||
$vlan_enabled,
|
||||
true
|
||||
);
|
||||
|
||||
// NOTE: The 7.0NG Recon Server will not generate random names, since IP
|
||||
// address collisions could have other consequences.
|
||||
// Different Form url if it's a create or if it's a update form.
|
||||
echo '<form name="modulo" method="post" action="index.php?sec=gservers&sec2=godmode/servers/manage_recontask&'.(($id_rt != -1) ? 'update='.$id_rt : 'create=1').'">';
|
||||
html_print_table($table);
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
||||
if ($id_rt != -1) {
|
||||
if ($name_script != 'IPAM Recon') {
|
||||
html_print_submit_button(__('Update'), 'crt', false, 'class="sub upd"');
|
||||
}
|
||||
} else {
|
||||
html_print_submit_button(__('Add'), 'crt', false, 'class="sub wand"');
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
|
||||
echo '</form>';
|
||||
|
||||
ui_require_javascript_file('pandora_modules');
|
||||
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
/* <![CDATA[ */
|
||||
$(document).ready (function () {
|
||||
|
||||
});
|
||||
|
||||
var xhrManager = function () {
|
||||
var manager = {};
|
||||
|
||||
manager.tasks = [];
|
||||
|
||||
manager.addTask = function (xhr) {
|
||||
manager.tasks.push(xhr);
|
||||
}
|
||||
|
||||
manager.stopTasks = function () {
|
||||
while (manager.tasks.length > 0)
|
||||
manager.tasks.pop().abort();
|
||||
}
|
||||
|
||||
return manager;
|
||||
};
|
||||
|
||||
var taskManager = new xhrManager();
|
||||
|
||||
$('select#interval_manual_defined').change(function() {
|
||||
if ($("#interval_manual_defined").val() == 1) {
|
||||
$('#interval_manual_container').hide();
|
||||
$('#text-interval_text').val(0);
|
||||
$('#hidden-interval').val(0);
|
||||
}
|
||||
else {
|
||||
$('#interval_manual_container').show();
|
||||
$('#text-interval_text').val(10);
|
||||
$('#hidden-interval').val(600);
|
||||
$('#interval_units').val(60);
|
||||
}
|
||||
}).change();
|
||||
|
||||
$('select#id_recon_script').change(function() {
|
||||
if ($('select#mode').val() == 'recon_script')
|
||||
get_explanation_recon_script($(this).val());
|
||||
});
|
||||
|
||||
$('select#snmp_version').change(function () {
|
||||
if (this.value == "3") {
|
||||
$(".recon_v3").show();
|
||||
$("input[name=active_snmp_v3]").val(1);
|
||||
$("input[name=snmp_community]").attr("disabled", true);
|
||||
$("input[name=vlan_enabled]").removeAttr("checked");
|
||||
$("input[name=vlan_enabled]").attr("disabled", true);
|
||||
}
|
||||
else {
|
||||
$(".recon_v3").hide();
|
||||
$("input[name=active_snmp_v3]").val(0);
|
||||
$("input[name=snmp_community]").removeAttr('disabled');
|
||||
$("input[name=vlan_enabled]").removeAttr('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
$('select#mode').change(function() {
|
||||
var type = $(this).val();
|
||||
if (type == 'recon_script') {
|
||||
$(".recon_script").show();
|
||||
$(".network_sweep").hide();
|
||||
|
||||
get_explanation_recon_script($("#id_recon_script").val());
|
||||
}
|
||||
else if (type == 'network_sweep') {
|
||||
$(".recon_script").hide();
|
||||
$(".network_sweep").show();
|
||||
$('.macro_field').remove();
|
||||
$('select#snmp_version').trigger('change');
|
||||
}
|
||||
}).change();
|
||||
|
||||
function get_explanation_recon_script (id) {
|
||||
// Stop old ajax tasks.
|
||||
taskManager.stopTasks();
|
||||
|
||||
// Show the spinners.
|
||||
$("#textarea_explanation").hide();
|
||||
$("#spinner_layout").show();
|
||||
|
||||
var xhr = jQuery.ajax ({
|
||||
data: {
|
||||
'page': 'godmode/servers/manage_recontask_form',
|
||||
'get_explanation': 1,
|
||||
'id': id,
|
||||
'id_rt': <?php echo json_encode((int) $id_rt); ?>
|
||||
},
|
||||
url: "<?php echo $config['homeurl']; ?>ajax.php",
|
||||
type: 'POST',
|
||||
dataType: 'text',
|
||||
complete: function (xhr, textStatus) {
|
||||
$("#spinner_layout").hide();
|
||||
},
|
||||
success: function (data, textStatus, xhr) {
|
||||
$("#textarea_explanation").val(data);
|
||||
$("#textarea_explanation").show();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.log(errorThrown);
|
||||
}
|
||||
});
|
||||
taskManager.addTask(xhr);
|
||||
|
||||
// Delete all the macro fields.
|
||||
$('.macro_field').remove();
|
||||
$("#spinner_recon_script").show();
|
||||
|
||||
var xhr = jQuery.ajax ({
|
||||
data: {
|
||||
'page': 'godmode/servers/manage_recontask_form',
|
||||
'get_recon_script_macros': 1,
|
||||
'id': id,
|
||||
'id_rt': <?php echo json_encode((int) $id_rt); ?>
|
||||
},
|
||||
url: "<?php echo $config['homeurl']; ?>ajax.php",
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
complete: function (xhr, textStatus) {
|
||||
$("#spinner_recon_script").hide();
|
||||
forced_title_callback();
|
||||
},
|
||||
success: function (data, textStatus, xhr) {
|
||||
if (data.array !== null) {
|
||||
$('#hidden-macros').val(data.base64);
|
||||
|
||||
jQuery.each (data.array, function (i, macro) {
|
||||
if (macro.desc != '') {
|
||||
add_macro_field(macro, 'table_recon-macro');
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.log(errorThrown);
|
||||
}
|
||||
});
|
||||
taskManager.addTask(xhr);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
@ -1,401 +1,27 @@
|
|||
<?php
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// 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 for version 2.
|
||||
// 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.
|
||||
if (is_ajax()) {
|
||||
$get_reconscript_description = get_parameter('get_reconscript_description');
|
||||
$id_reconscript = get_parameter('id_reconscript');
|
||||
|
||||
$description = db_get_value_filter(
|
||||
'description',
|
||||
'trecon_script',
|
||||
['id_recon_script' => $id_reconscript]
|
||||
);
|
||||
|
||||
echo htmlentities(io_safe_output($description), ENT_QUOTES, 'UTF-8', true);
|
||||
return;
|
||||
}
|
||||
|
||||
// Load global vars
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'LM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access recon script Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Disabled at the moment.
|
||||
if (!check_referer()) {
|
||||
require ("general/noaccess.php");
|
||||
|
||||
return;
|
||||
}
|
||||
/**
|
||||
* Deprectated.
|
||||
*
|
||||
* @category Deprectated
|
||||
* @package Pandora FMS
|
||||
* @subpackage recon script
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* 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 for version 2.
|
||||
* 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.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
$view = get_parameter('view', '');
|
||||
$create = get_parameter('create', '');
|
||||
|
||||
if ($view != '') {
|
||||
$form_id = $view;
|
||||
$reconscript = db_get_row('trecon_script', 'id_recon_script', $form_id);
|
||||
$form_name = $reconscript['name'];
|
||||
$form_description = $reconscript['description'];
|
||||
$form_script = $reconscript['script'];
|
||||
$macros = $reconscript['macros'];
|
||||
}
|
||||
|
||||
if ($create != '') {
|
||||
$form_name = '';
|
||||
$form_description = '';
|
||||
$form_script = '';
|
||||
$macros = '';
|
||||
}
|
||||
|
||||
// SHOW THE FORM
|
||||
// =================================================================
|
||||
if (($create != '') or ($view != '')) {
|
||||
if ($create != '') {
|
||||
ui_print_page_header(__('Recon script creation'), 'images/gm_servers.png', false, 'reconscript_definition', true);
|
||||
} else {
|
||||
ui_print_page_header(__('Recon script update'), 'images/gm_servers.png', false, 'reconscript_definition', true);
|
||||
$id_recon_script = get_parameter('view', '');
|
||||
}
|
||||
|
||||
|
||||
if ($create == '') {
|
||||
echo "<form name=reconscript method='post' action='index.php?sec=gservers&sec2=godmode/servers/recon_script&update_reconscript=$id_recon_script'>";
|
||||
} else {
|
||||
echo "<form name=reconscript method='post' action='index.php?sec=gservers&sec2=godmode/servers/recon_script&create_reconscript=1'>";
|
||||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->id = 'table-form';
|
||||
$table->class = 'databox filters';
|
||||
$table->style = [];
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->style[2] = 'font-weight: bold';
|
||||
$table->data = [];
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Name');
|
||||
$data[1] = '<input type="text" name="form_name" size=30 value="'.$form_name.'">';
|
||||
$table->data['recon_name'] = $data;
|
||||
$table->colspan['recon_name'][1] = 3;
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Script fullpath');
|
||||
$data[1] = '<input type="text" name="form_script" size=70 value="'.$form_script.'">';
|
||||
$table->data['recon_fullpath'] = $data;
|
||||
$table->colspan['recon_fullpath'][1] = 3;
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Description');
|
||||
$data[1] = '<textarea name="form_description" cols="50" rows="4">';
|
||||
$data[1] .= $form_description;
|
||||
$data[1] .= '</textarea>';
|
||||
$table->data['recon_description'] = $data;
|
||||
$table->colspan['recon_description'][1] = 3;
|
||||
|
||||
$macros = json_decode($macros, true);
|
||||
|
||||
// This code is ready to add locked feature as plugins
|
||||
$locked = false;
|
||||
|
||||
// The next row number is recon_3
|
||||
$next_name_number = 3;
|
||||
$i = 1;
|
||||
while (1) {
|
||||
// Always print at least one macro
|
||||
if ((!isset($macros[$i]) || $macros[$i]['desc'] == '') && $i > 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
$macro_desc_name = 'field'.$i.'_desc';
|
||||
$macro_desc_value = '';
|
||||
$macro_help_name = 'field'.$i.'_help';
|
||||
$macro_help_value = '';
|
||||
$macro_value_name = 'field'.$i.'_value';
|
||||
$macro_value_value = '';
|
||||
$macro_name_name = 'field'.$i.'_macro';
|
||||
$macro_name = '_field'.$i.'_';
|
||||
$macro_hide_value_name = 'field'.$i.'_hide';
|
||||
$macro_hide_value_value = 0;
|
||||
|
||||
if (isset($macros[$i]['desc'])) {
|
||||
$macro_desc_value = $macros[$i]['desc'];
|
||||
}
|
||||
|
||||
if (isset($macros[$i]['help'])) {
|
||||
$macro_help_value = $macros[$i]['help'];
|
||||
}
|
||||
|
||||
if (isset($macros[$i]['value'])) {
|
||||
$macro_value_value = $macros[$i]['value'];
|
||||
}
|
||||
|
||||
if (isset($macros[$i]['hide'])) {
|
||||
$macro_hide_value_value = $macros[$i]['hide'];
|
||||
}
|
||||
|
||||
$datam = [];
|
||||
$datam[0] = __('Description')."<span style='font-weight: normal'> ($macro_name)</span>";
|
||||
$datam[0] .= html_print_input_hidden($macro_name_name, $macro_name, true);
|
||||
$datam[1] = html_print_input_text_extended($macro_desc_name, $macro_desc_value, 'text-'.$macro_desc_name, '', 30, 255, $locked, '', "class='command_advanced_conf'", true);
|
||||
if ($locked) {
|
||||
$datam[1] .= html_print_image('images/lock.png', true, ['class' => 'command_advanced_conf']);
|
||||
}
|
||||
|
||||
$datam[2] = __('Default value')."<span style='font-weight: normal'> ($macro_name)</span>";
|
||||
$datam[3] = html_print_input_text_extended($macro_value_name, $macro_value_value, 'text-'.$macro_value_name, '', 30, 255, $locked, '', "class='command_component command_advanced_conf'", true);
|
||||
if ($locked) {
|
||||
$datam[3] .= html_print_image('images/lock.png', true, ['class' => 'command_advanced_conf']);
|
||||
}
|
||||
|
||||
$table->data['recon_'.$next_name_number] = $datam;
|
||||
|
||||
$next_name_number++;
|
||||
|
||||
$table->colspan['recon_'.$next_name_number][1] = 3;
|
||||
|
||||
$datam = [];
|
||||
$datam[0] = __('Hide value').ui_print_help_tip(__('This field will show up as dots like a password'), true);
|
||||
$datam[1] = html_print_checkbox_extended($macro_hide_value_name, 1, $macro_hide_value_value, 0, '', ['class' => 'command_advanced_conf'], true, 'checkbox-'.$macro_hide_value_name);
|
||||
|
||||
$table->data['recon_'.$next_name_number] = $datam;
|
||||
$next_name_number++;
|
||||
|
||||
$table->colspan['recon_'.$next_name_number][1] = 3;
|
||||
|
||||
$datam = [];
|
||||
$datam[0] = __('Help')."<span style='font-weight: normal'> ($macro_name)</span><br><br><br>";
|
||||
$tadisabled = $locked === true ? ' disabled' : '';
|
||||
$datam[1] = html_print_textarea($macro_help_name, 6, 100, $macro_help_value, 'class="command_advanced_conf" style="width: 97%;"'.$tadisabled, true);
|
||||
|
||||
if ($locked) {
|
||||
$datam[1] .= html_print_image('images/lock.png', true, ['class' => 'command_advanced_conf']);
|
||||
}
|
||||
|
||||
$datam[1] .= '<br><br><br>';
|
||||
|
||||
$table->data['recon_'.$next_name_number] = $datam;
|
||||
$next_name_number++;
|
||||
$i++;
|
||||
}
|
||||
|
||||
if (!$locked) {
|
||||
$datam = [];
|
||||
$datam[0] = '<span style="font-weight: bold">'.__('Add macro').'</span> <a href="javascript:new_macro(\'table-form-recon_\');update_preview();">'.html_print_image('images/add.png', true).'</a>';
|
||||
$datam[0] .= '<div id="next_macro" style="display:none">'.$i.'</div>';
|
||||
$datam[0] .= '<div id="next_row" style="display:none">'.$next_name_number.'</div>';
|
||||
$delete_macro_style = '';
|
||||
if ($i <= 2) {
|
||||
$delete_macro_style = 'display:none;';
|
||||
}
|
||||
|
||||
$datam[2] = '<div id="delete_macro_button" style="'.$delete_macro_style.'">'.__('Delete macro').' <a href="javascript:delete_macro_form(\'table-form-recon_\');update_preview();">'.html_print_image('images/delete.png', true).'</a></div>';
|
||||
|
||||
$table->colspan['recon_action'][0] = 2;
|
||||
$table->rowstyle['recon_action'] = 'text-align:center';
|
||||
$table->colspan['recon_action'][2] = 2;
|
||||
$table->data['recon_action'] = $datam;
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
|
||||
echo '<table width=100%>';
|
||||
echo '<tr><td align="right">';
|
||||
|
||||
if ($create != '') {
|
||||
echo "<input name='crtbutton' type='submit' class='sub wand' value='".__('Create')."'>";
|
||||
} else {
|
||||
echo "<input name='uptbutton' type='submit' class='sub upd' value='".__('Update')."'>";
|
||||
}
|
||||
|
||||
echo '</form></table>';
|
||||
} else {
|
||||
ui_print_page_header(__('Recon scripts registered on %s', get_product_name()), 'images/gm_servers.png', false, '', true);
|
||||
|
||||
// Update reconscript
|
||||
if (isset($_GET['update_reconscript'])) {
|
||||
// if modified any parameter
|
||||
$id_recon_script = get_parameter('update_reconscript', 0);
|
||||
$reconscript_name = get_parameter('form_name', '');
|
||||
$reconscript_description = get_parameter('form_description', '');
|
||||
$reconscript_script = get_parameter('form_script', '');
|
||||
|
||||
// Get macros
|
||||
$i = 1;
|
||||
$macros = [];
|
||||
while (1) {
|
||||
$macro = (string) get_parameter('field'.$i.'_macro');
|
||||
if ($macro == '') {
|
||||
break;
|
||||
}
|
||||
|
||||
$desc = (string) get_parameter('field'.$i.'_desc');
|
||||
$help = (string) get_parameter('field'.$i.'_help');
|
||||
$value = (string) get_parameter('field'.$i.'_value');
|
||||
$hide = get_parameter('field'.$i.'_hide');
|
||||
|
||||
$macros[$i]['macro'] = $macro;
|
||||
$macros[$i]['desc'] = $desc;
|
||||
$macros[$i]['help'] = $help;
|
||||
$macros[$i]['value'] = $value;
|
||||
$macros[$i]['hide'] = $hide;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$macros = io_json_mb_encode($macros);
|
||||
|
||||
$sql_update = "UPDATE trecon_script SET
|
||||
name = '$reconscript_name',
|
||||
description = '$reconscript_description',
|
||||
script = '$reconscript_script',
|
||||
macros = '$macros'
|
||||
WHERE id_recon_script = $id_recon_script";
|
||||
$result = false;
|
||||
if ($reconscript_name != '' && $reconscript_script != '') {
|
||||
$result = db_process_sql($sql_update);
|
||||
}
|
||||
|
||||
if (! $result) {
|
||||
ui_print_error_message(__('Problem updating'));
|
||||
} else {
|
||||
ui_print_success_message(__('Updated successfully'));
|
||||
}
|
||||
}
|
||||
|
||||
// Create reconscript
|
||||
if (isset($_GET['create_reconscript'])) {
|
||||
$reconscript_name = get_parameter('form_name', '');
|
||||
$reconscript_description = get_parameter('form_description', '');
|
||||
$reconscript_script = get_parameter('form_script', '');
|
||||
|
||||
// Get macros
|
||||
$i = 1;
|
||||
$macros = [];
|
||||
while (1) {
|
||||
$macro = (string) get_parameter('field'.$i.'_macro');
|
||||
if ($macro == '') {
|
||||
break;
|
||||
}
|
||||
|
||||
$desc = (string) get_parameter('field'.$i.'_desc');
|
||||
$help = (string) get_parameter('field'.$i.'_help');
|
||||
$value = (string) get_parameter('field'.$i.'_value');
|
||||
$hide = get_parameter('field'.$i.'_hide');
|
||||
|
||||
$macros[$i]['macro'] = $macro;
|
||||
$macros[$i]['desc'] = $desc;
|
||||
$macros[$i]['help'] = $help;
|
||||
$macros[$i]['value'] = $value;
|
||||
$macros[$i]['hide'] = $hide;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$macros = io_json_mb_encode($macros);
|
||||
|
||||
$values = [
|
||||
'name' => $reconscript_name,
|
||||
'description' => $reconscript_description,
|
||||
'script' => $reconscript_script,
|
||||
'macros' => $macros,
|
||||
];
|
||||
$result = false;
|
||||
if ($values['name'] != '' && $values['script'] != '') {
|
||||
$result = db_process_sql_insert('trecon_script', $values);
|
||||
}
|
||||
|
||||
if (! $result) {
|
||||
ui_print_error_message(__('Problem creating'));
|
||||
} else {
|
||||
ui_print_success_message(__('Created successfully'));
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_GET['kill_reconscript'])) {
|
||||
// if delete alert
|
||||
$reconscript_id = get_parameter('kill_reconscript', 0);
|
||||
|
||||
$result = db_process_sql_delete(
|
||||
'trecon_script',
|
||||
['id_recon_script' => $reconscript_id]
|
||||
);
|
||||
|
||||
if (! $result) {
|
||||
ui_print_error_message(__('Problem deleting reconscript'));
|
||||
} else {
|
||||
ui_print_success_message(__('reconscript deleted successfully'));
|
||||
}
|
||||
|
||||
if ($reconscript_id != 0) {
|
||||
$result = db_process_sql_delete(
|
||||
'trecon_task',
|
||||
['id_recon_script' => $reconscript_id]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// If not edition or insert, then list available reconscripts
|
||||
$rows = db_get_all_rows_in_table('trecon_script');
|
||||
|
||||
if ($rows !== false) {
|
||||
echo '<table width="100%" cellspacing="4" cellpadding="4" class="databox data">';
|
||||
echo '<th>'.__('Name').'</th>';
|
||||
echo '<th>'.__('Description').'</th>';
|
||||
echo '<th>'.__('Delete').'</th>';
|
||||
$color = 0;
|
||||
foreach ($rows as $row) {
|
||||
if ($color == 1) {
|
||||
$tdcolor = 'datos';
|
||||
$color = 0;
|
||||
} else {
|
||||
$tdcolor = 'datos2';
|
||||
$color = 1;
|
||||
}
|
||||
|
||||
echo '<tr>';
|
||||
echo "<td class='$tdcolor' style='min-width: 100px;'>";
|
||||
echo "<b><a href='index.php?sec=gservers&sec2=godmode/servers/recon_script&view=".$row['id_recon_script']."'>";
|
||||
echo $row['name'];
|
||||
echo '</a></b></td>';
|
||||
echo "</td><td class='$tdcolor'>";
|
||||
$desc = io_safe_output($row['description']);
|
||||
$desc = str_replace("\n", '<br>', $desc);
|
||||
echo $desc.'<br><br>';
|
||||
echo '<b>'.__('Command').': </b><i>'.$row['script'].'</i>';
|
||||
echo "</td><td align='center' class='$tdcolor'>";
|
||||
echo "<a href='index.php?sec=gservers&sec2=godmode/servers/recon_script&kill_reconscript=".$row['id_recon_script']."'>".html_print_image('images/cross.png', true, ['border' => '0']).'</a>';
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no recon scripts in the system') ]);
|
||||
}
|
||||
|
||||
echo '<table width=100%>';
|
||||
echo '<tr><td align=right>';
|
||||
echo "<form name=reconscript method='post' action='index.php?sec=gservers&sec2=godmode/servers/recon_script&create=1'>";
|
||||
echo "<input name='crtbutton' type='submit' class='sub next' value='".__('Add')."'>";
|
||||
echo '</td></tr></table>';
|
||||
}
|
||||
|
||||
ui_require_javascript_file('pandora_modules');
|
||||
|
|
|
@ -536,6 +536,19 @@ $table->data[] = [
|
|||
),
|
||||
];
|
||||
|
||||
|
||||
$table->data[] = [
|
||||
__('Max. days before delete old network matrix data'),
|
||||
html_print_input_text(
|
||||
'delete_old_network_matrix',
|
||||
$config['delete_old_network_matrix'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true
|
||||
),
|
||||
];
|
||||
|
||||
$table_other = new stdClass();
|
||||
$table_other->width = '100%';
|
||||
$table_other->class = 'databox filters';
|
||||
|
|
|
@ -131,6 +131,14 @@ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
|
|||
|
||||
$table->data[19][1] = html_print_checkbox_switch_extended('activate_netflow', 1, $config['activate_netflow'], $rbt_disabled, '', '', true);
|
||||
|
||||
$table->data[21][0] = __('Enable Network Traffic Analyzer');
|
||||
$table->data[21][1] = html_print_switch(
|
||||
[
|
||||
'name' => 'activate_nta',
|
||||
'value' => $config['activate_nta'],
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
$zone_name = [
|
||||
'Africa' => __('Africa'),
|
||||
|
|
|
@ -243,7 +243,7 @@ function logo_custom_enterprise($name, $logo)
|
|||
false,
|
||||
true,
|
||||
'',
|
||||
$open,
|
||||
false,
|
||||
'width:240px'
|
||||
);
|
||||
return $select;
|
||||
|
@ -259,7 +259,7 @@ function logo_custom_enterprise($name, $logo)
|
|||
false,
|
||||
true,
|
||||
'',
|
||||
$open,
|
||||
true,
|
||||
'width:240px'
|
||||
);
|
||||
return $select;
|
||||
|
@ -462,6 +462,20 @@ if (enterprise_installed()) {
|
|||
$row++;
|
||||
}
|
||||
|
||||
// Title Header
|
||||
if (enterprise_installed()) {
|
||||
$table_styles->data[$row][0] = __('Title (header)');
|
||||
$table_styles->data[$row][1] = html_print_input_text('custom_title_header', $config['custom_title_header'], '', 50, 40, true);
|
||||
$row++;
|
||||
}
|
||||
|
||||
// Subtitle Header
|
||||
if (enterprise_installed()) {
|
||||
$table_styles->data[$row][0] = __('Subtitle (header)');
|
||||
$table_styles->data[$row][1] = html_print_input_text('custom_subtitle_header', $config['custom_subtitle_header'], '', 50, 40, true);
|
||||
$row++;
|
||||
}
|
||||
|
||||
// login title1
|
||||
if (enterprise_installed()) {
|
||||
$table_styles->data[$row][0] = __('Title 1 (login)');
|
||||
|
|
|
@ -30,7 +30,10 @@ require_once __DIR__.'/Wizard.main.php';
|
|||
require_once $config['homedir'].'/include/functions_users.php';
|
||||
require_once $config['homedir'].'/include/functions_reports.php';
|
||||
require_once $config['homedir'].'/include/functions_cron.php';
|
||||
enterprise_include('include/functions_tasklist.php');
|
||||
enterprise_include_once('include/functions_tasklist.php');
|
||||
enterprise_include_once('include/functions_cron.php');
|
||||
|
||||
ui_require_css_file('task_list');
|
||||
|
||||
/**
|
||||
* Defined as wizard to guide user to explore running tasks.
|
||||
|
@ -93,7 +96,8 @@ class DiscoveryTaskList extends Wizard
|
|||
]
|
||||
);
|
||||
|
||||
$this->printHeader();
|
||||
// Header
|
||||
ui_print_page_header(__('Task list'), '', false, '', true, '', false, '', GENERIC_SIZE_TEXT, '', $this->printHeader(true));
|
||||
|
||||
// Show redirected messages from discovery.php.
|
||||
if ($status === 0) {
|
||||
|
@ -237,7 +241,7 @@ class DiscoveryTaskList extends Wizard
|
|||
$id_console_task = (int) get_parameter('id_console_task');
|
||||
|
||||
if ($id_console_task !== null) {
|
||||
enterprise_include('cron_task_run', $id_console_task, true);
|
||||
enterprise_hook('cron_task_run', [$id_console_task, true]);
|
||||
// Trick to avoid double execution.
|
||||
header('Location: '.$this->url);
|
||||
}
|
||||
|
@ -345,6 +349,8 @@ class DiscoveryTaskList extends Wizard
|
|||
$recon_tasks = [];
|
||||
}
|
||||
|
||||
$url_ajax = $config['homeurl'].'ajax.php';
|
||||
|
||||
$table = new StdClass();
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
|
@ -424,7 +430,16 @@ class DiscoveryTaskList extends Wizard
|
|||
$data[0] = '';
|
||||
}
|
||||
|
||||
$data[1] = '<b>'.$task['name'].'</b>';
|
||||
// Name task.
|
||||
$data[1] = '';
|
||||
if ($task['disabled'] != 2) {
|
||||
$data[1] .= '<a href="#" onclick="progress_task_list('.$task['id_rt'].',\''.$task['name'].'\')">';
|
||||
}
|
||||
|
||||
$data[1] .= '<b>'.$task['name'].'</b>';
|
||||
if ($task['disabled'] != 2) {
|
||||
$data[1] .= '</a>';
|
||||
}
|
||||
|
||||
$data[2] = $server_name;
|
||||
|
||||
|
@ -488,6 +503,24 @@ class DiscoveryTaskList extends Wizard
|
|||
$data[8] = __('Not executed yet');
|
||||
}
|
||||
|
||||
if ($task['disabled'] != 2) {
|
||||
$data[9] = '<a href="#" onclick="progress_task_list('.$task['id_rt'].',\''.$task['name'].'\')">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/eye.png',
|
||||
true
|
||||
);
|
||||
$data[9] .= '</a>';
|
||||
}
|
||||
|
||||
if ($task['disabled'] != 2 && $task['utimestamp'] > 0) {
|
||||
$data[9] .= '<a href="#" onclick="show_map('.$task['id_rt'].',\''.$task['name'].'\')">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/dynamic_network_icon.png',
|
||||
true
|
||||
);
|
||||
$data[9] .= '</a>';
|
||||
}
|
||||
|
||||
if (check_acl(
|
||||
$config['id_user'],
|
||||
$task['id_group'],
|
||||
|
@ -495,7 +528,7 @@ class DiscoveryTaskList extends Wizard
|
|||
)
|
||||
) {
|
||||
if ($ipam === true) {
|
||||
$data[9] = '<a href="'.ui_get_full_url(
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=godmode/extensions&sec2=enterprise/extensions/ipam&action=edit&id=%d',
|
||||
$tipam_task_id
|
||||
|
@ -512,7 +545,7 @@ class DiscoveryTaskList extends Wizard
|
|||
).'</a>';
|
||||
} else {
|
||||
// Check if is a H&D, Cloud or Application or IPAM.
|
||||
$data[9] = '<a href="'.ui_get_full_url(
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=gservers&sec2=godmode/servers/discovery&%s&task=%d',
|
||||
$this->getTargetWiz($task),
|
||||
|
@ -533,6 +566,9 @@ class DiscoveryTaskList extends Wizard
|
|||
$data[9] = '';
|
||||
}
|
||||
|
||||
// Div neccesary for modal progress task.
|
||||
echo '<div id="progress_task_'.$task['id_rt'].'" style="display:none"></div>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
||||
|
@ -544,7 +580,12 @@ class DiscoveryTaskList extends Wizard
|
|||
html_print_table($table);
|
||||
}
|
||||
|
||||
unset($table);
|
||||
// Div neccesary for modal map task.
|
||||
echo '<div id="map_task" style="display:none"></div>';
|
||||
|
||||
unset($table);
|
||||
|
||||
ui_require_javascript_file('pandora_taskList');
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -583,7 +624,12 @@ class DiscoveryTaskList extends Wizard
|
|||
return 'wiz=ctask';
|
||||
|
||||
default:
|
||||
return 'wiz=hd&mode=netscan';
|
||||
if ($task['id_recon_script'] === null) {
|
||||
return 'wiz=hd&mode=netscan';
|
||||
} else {
|
||||
return 'wiz=hd&mode=customnetscan';
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,10 @@
|
|||
|
||||
require_once __DIR__.'/Wizard.main.php';
|
||||
require_once $config['homedir'].'/include/functions_users.php';
|
||||
enterprise_include('include/class/CSVImportAgents.class.php');
|
||||
require_once $config['homedir'].'/include/class/CustomNetScan.class.php';
|
||||
require_once $config['homedir'].'/include/class/ManageNetScanScripts.class.php';
|
||||
|
||||
enterprise_include_once('include/class/CSVImportAgents.class.php');
|
||||
enterprise_include_once('include/functions_hostdevices.php');
|
||||
|
||||
/**
|
||||
|
@ -117,6 +120,7 @@ class HostDevices extends Wizard
|
|||
'icon' => 'images/wizard/netscan.png',
|
||||
'label' => __('Net Scan'),
|
||||
];
|
||||
|
||||
if (enterprise_installed()) {
|
||||
$buttons[] = [
|
||||
'url' => $this->url.'&mode=importcsv',
|
||||
|
@ -125,6 +129,18 @@ class HostDevices extends Wizard
|
|||
];
|
||||
}
|
||||
|
||||
$buttons[] = [
|
||||
'url' => $this->url.'&mode=customnetscan',
|
||||
'icon' => '/images/wizard/customnetscan.png',
|
||||
'label' => __('Custom NetScan'),
|
||||
];
|
||||
|
||||
$buttons[] = [
|
||||
'url' => $this->url.'&mode=managenetscanscripts',
|
||||
'icon' => '/images/wizard/managenetscanscripts.png',
|
||||
'label' => __('Manage NetScan scripts'),
|
||||
];
|
||||
|
||||
$this->prepareBreadcrum(
|
||||
[
|
||||
[
|
||||
|
@ -136,19 +152,38 @@ class HostDevices extends Wizard
|
|||
]
|
||||
);
|
||||
|
||||
$this->printHeader();
|
||||
ui_print_page_header(__('Host & devices'), '', false, '', true, '', false, '', GENERIC_SIZE_TEXT, '', $this->printHeader(true));
|
||||
|
||||
$this->printBigButtonsList($buttons);
|
||||
return;
|
||||
}
|
||||
|
||||
if (enterprise_installed()) {
|
||||
if ($mode == 'importcsv') {
|
||||
$csv_importer = new CSVImportAgents($this->page, $this->breadcrum);
|
||||
if ($mode === 'importcsv') {
|
||||
$csv_importer = new CSVImportAgents(
|
||||
$this->page,
|
||||
$this->breadcrum
|
||||
);
|
||||
return $csv_importer->runCSV();
|
||||
}
|
||||
}
|
||||
|
||||
if ($mode === 'customnetscan') {
|
||||
$customnetscan_importer = new CustomNetScan(
|
||||
$this->page,
|
||||
$this->breadcrum
|
||||
);
|
||||
return $customnetscan_importer->runCustomNetScan();
|
||||
}
|
||||
|
||||
if ($mode === 'managenetscanscripts') {
|
||||
$managenetscanscript_importer = new ManageNetScanScripts(
|
||||
$this->page,
|
||||
$this->breadcrum
|
||||
);
|
||||
return $managenetscanscript_importer->runManageNetScanScript();
|
||||
}
|
||||
|
||||
if ($mode == 'netscan') {
|
||||
return $this->runNetScan();
|
||||
}
|
||||
|
@ -477,9 +512,15 @@ class HostDevices extends Wizard
|
|||
$task_url = '&task='.$this->task['id_rt'];
|
||||
}
|
||||
|
||||
$breadcrum[] = [
|
||||
'link' => 'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=hd',
|
||||
'label' => __($this->label),
|
||||
$breadcrum = [
|
||||
[
|
||||
'link' => 'index.php?sec=gservers&sec2=godmode/servers/discovery',
|
||||
'label' => 'Discovery',
|
||||
],
|
||||
[
|
||||
'link' => 'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=hd',
|
||||
'label' => __($this->label),
|
||||
],
|
||||
];
|
||||
for ($i = 0; $i < $this->maxPagesNetScan; $i++) {
|
||||
$breadcrum[] = [
|
||||
|
@ -492,7 +533,7 @@ class HostDevices extends Wizard
|
|||
if ($this->page < $this->maxPagesNetScan) {
|
||||
// Avoid to print header out of wizard.
|
||||
$this->prepareBreadcrum($breadcrum);
|
||||
$this->printHeader();
|
||||
ui_print_page_header(__('NetScan'), '', false, '', true, '', false, '', GENERIC_SIZE_TEXT, '', $this->printHeader(true));
|
||||
}
|
||||
|
||||
if (isset($this->page) === true
|
||||
|
|
|
@ -26,14 +26,15 @@
|
|||
* ============================================================================
|
||||
*/
|
||||
|
||||
define('CLOUDWIZARD_AWS_DESCRIPTION', 'Discovery.Cloud.AWS.EC2');
|
||||
// Begin.
|
||||
|
||||
/**
|
||||
* Global Wizard generic class. Needs to be inherited.
|
||||
*
|
||||
* Used in Hostdevices class, Applications class and others, is the core of
|
||||
* Discovery proyect.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Global Wizard generic class. Needs to be inherited.
|
||||
*
|
||||
* Used in Hostdevices class, Applications class and others, is the core of
|
||||
* Discovery proyect.
|
||||
*/
|
||||
class Wizard
|
||||
{
|
||||
|
||||
|
@ -195,20 +196,38 @@ class Wizard
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function prepareBreadcrum(array $urls, bool $add=false)
|
||||
public function prepareBreadcrum(array $urls, bool $add=false, bool $separator_beginning=false)
|
||||
{
|
||||
$bc = [];
|
||||
$i = 0;
|
||||
$count = 0;
|
||||
$array_size = count($urls);
|
||||
|
||||
foreach ($urls as $url) {
|
||||
$count++;
|
||||
|
||||
if ($url['selected'] == 1) {
|
||||
$class = 'selected';
|
||||
} else {
|
||||
$class = '';
|
||||
}
|
||||
|
||||
$bc[$i] = '<a href="'.$url['link'].'" class="text_color">';
|
||||
$bc[$i] .= '<div class="arrow_box '.$class.'">'.$url['label'];
|
||||
$bc[$i++] .= '</div></a>';
|
||||
$bc[$i] = '';
|
||||
|
||||
if ($separator_beginning === true) {
|
||||
$bc[$i] .= '<span class="breadcrumb_link"> / </span>';
|
||||
}
|
||||
|
||||
$bc[$i] .= '<span><a class="breadcrumb_link '.$class.'" href="'.$url['link'].'">';
|
||||
$bc[$i] .= $url['label'];
|
||||
$bc[$i] .= '</a>';
|
||||
if ($count < $array_size) {
|
||||
$bc[$i] .= '<span class="breadcrumb_link"> / </span>';
|
||||
}
|
||||
|
||||
$bc[$i] .= '</span>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($add === true) {
|
||||
|
@ -256,7 +275,7 @@ class Wizard
|
|||
*/
|
||||
public function printBreadcrum()
|
||||
{
|
||||
return '<h1 class="wizard">'.implode('', $this->breadcrum).'</h1>';
|
||||
return implode('', $this->breadcrum);
|
||||
}
|
||||
|
||||
|
||||
|
@ -572,14 +591,18 @@ class Wizard
|
|||
{
|
||||
$output = '';
|
||||
if ($input['hidden'] == 1) {
|
||||
$class = ' class="hidden"';
|
||||
$class = ' hidden';
|
||||
} else {
|
||||
$class = '';
|
||||
}
|
||||
|
||||
if (isset($input['class']) === true) {
|
||||
$class = $input['class'].$class;
|
||||
}
|
||||
|
||||
if (is_array($input['block_content']) === true) {
|
||||
// Print independent block of inputs.
|
||||
$output .= '<li id="'.$input['block_id'].'" '.$class.'>';
|
||||
$output .= '<li id="'.$input['block_id'].'" class="'.$class.'">';
|
||||
$output .= '<ul class="wizard">';
|
||||
foreach ($input['block_content'] as $input) {
|
||||
$output .= $this->printBlock($input, $return);
|
||||
|
@ -588,7 +611,7 @@ class Wizard
|
|||
$output .= '</ul></li>';
|
||||
} else {
|
||||
if ($input['arguments']['type'] != 'hidden') {
|
||||
$output .= '<li id="'.$input['id'].'" '.$class.'>';
|
||||
$output .= '<li id="'.$input['id'].'" class="'.$class.'">';
|
||||
$output .= '<label>'.$input['label'].'</label>';
|
||||
$output .= $this->printInput($input['arguments']);
|
||||
// Allow dynamic content.
|
||||
|
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 286 B |
After Width: | Height: | Size: 286 B |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 339 B |
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 263 B |
After Width: | Height: | Size: 263 B |
Before Width: | Height: | Size: 364 B After Width: | Height: | Size: 443 B |