Merge remote-tracking branch 'origin/develop' into ent-3758-7777-bug-validacion-eventos-en-consola
This commit is contained in:
commit
0b118f63ad
|
@ -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
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
docker build --rm=true --build-arg BRANCH="develop" --build-arg DB_PASS="pandora" -t pandorafms/pandorafms:7 . && \
|
||||
docker build --rm=true --pull --no-cache --build-arg BRANCH="develop" --build-arg DB_PASS="pandora" -t pandorafms/pandorafms:7 . && \
|
||||
docker push pandorafms/pandorafms:7
|
||||
|
|
|
@ -26,9 +26,11 @@ $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 \
|
||||
$PANDHOME_ENT/pandora_console/enterprise/pandora_console_enterprise.rhel7.spec \
|
||||
$PANDHOME_ENT/pandora_server/PandoraFMS-Enterprise/pandora_server_enterprise.redhat.spec"
|
||||
DEBIAN_FILES="$CODEHOME/pandora_console/DEBIAN \
|
||||
$CODEHOME/pandora_server/DEBIAN \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, AIX version
|
||||
# Version 7.0NG.734, 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.734, 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.734, 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.734, 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.734, 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.734, 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.734
|
||||
|
||||
# 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.734, 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.734
|
||||
# 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.734, HPUX Version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732
|
||||
# Version 7.0NG.734
|
||||
# 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.734
|
||||
# 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.734
|
||||
# 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.734, Solaris version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.732, AIX version
|
||||
# Version 7.0NG.734, 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-190326
|
||||
Version: 7.0NG.734-190508
|
||||
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-190326"
|
||||
pandora_version="7.0NG.734-190508"
|
||||
|
||||
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.734, 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.734, 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.734, 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.734, 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.734, 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.734, 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.734, 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 => '190326';
|
||||
use constant AGENT_VERSION => '7.0NG.734';
|
||||
use constant AGENT_BUILD => '190508';
|
||||
|
||||
# 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;
|
||||
|
@ -1073,6 +1075,10 @@ sub send_buffered_xml_files ($;$) {
|
|||
unlink ("$temporal_file/$xml_file");
|
||||
}
|
||||
}
|
||||
# Do not get stuck trying to send buffered XML files to a secondary server.
|
||||
elsif ($flag_always == 2) {
|
||||
last;
|
||||
}
|
||||
}
|
||||
if (defined($flag_always) && ($flag_always == 2)){
|
||||
swap_servers ();
|
||||
|
@ -2101,45 +2107,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 +2140,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 +2201,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 +2235,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 +2263,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 +2285,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 +2316,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 +2431,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 +2546,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 190326
|
||||
%define version 7.0NG.734
|
||||
%define release 190508
|
||||
|
||||
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 190326
|
||||
%define version 7.0NG.734
|
||||
%define release 190508
|
||||
|
||||
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="190326"
|
||||
PI_VERSION="7.0NG.734"
|
||||
PI_BUILD="190508"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -4,23 +4,44 @@
|
|||
# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L.
|
||||
#
|
||||
# inventory Generate a hardware/software inventory.
|
||||
#
|
||||
#
|
||||
# Sample usage: ./inventory <interval in days> [cpu] [ram] [video] [nic] [hd] [cdrom] [software] [init_services] [filesystem] [process] [users]
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
use strict;
|
||||
use constant TSTAMP_FILE => '/tmp/pandora_inventory.tstamp';
|
||||
use Scalar::Util qw(looks_like_number);
|
||||
use Data::Dumper;
|
||||
|
||||
# Set environment language to English
|
||||
$ENV{"LANG"} = "en_US";
|
||||
|
||||
# Check AIX system
|
||||
my $AIX=0;
|
||||
my $system = `uname -a | awk '{print $1}'`;
|
||||
if ($system =~ 'AIX') {
|
||||
$AIX=1;
|
||||
}
|
||||
|
||||
sub is_enabled {
|
||||
my $value = shift;
|
||||
if ((defined ($value)) && looks_like_number($value) && ($value > 0)){
|
||||
# return true
|
||||
return 1;
|
||||
}
|
||||
#return false
|
||||
return 0;
|
||||
}
|
||||
# Operation mode (LSHW or HWINFO)
|
||||
my $Mode;
|
||||
|
||||
|
@ -31,12 +52,12 @@ my $Separator;
|
|||
sub get_module_data ($$$$) {
|
||||
my ($name, $hwinfo, $keys, $modules) = @_;
|
||||
my %module;
|
||||
|
||||
# Store keys
|
||||
$Separator='\s+\*\-';
|
||||
# Store keys
|
||||
foreach my $key (@{$keys}) {
|
||||
push (@{$module{'_keys'}}, $key);
|
||||
}
|
||||
|
||||
|
||||
# Parse module data
|
||||
while (my $line = shift (@{$hwinfo})) {
|
||||
if ($line =~ /$Separator/) {
|
||||
|
@ -46,7 +67,7 @@ sub get_module_data ($$$$) {
|
|||
foreach my $key (@{$keys}) {
|
||||
if ($line =~ /$key:\s+(.+)/) {
|
||||
$module{$key} = $1;
|
||||
# Replace semicolon by comma to avoid parse errors
|
||||
# Replace semicolon by comma to avoid parse errors
|
||||
$module{$key} =~ s/;/,/g;
|
||||
}
|
||||
}
|
||||
|
@ -58,12 +79,65 @@ sub get_module_data ($$$$) {
|
|||
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
sub test_contain ($$) {
|
||||
my ($value, $array)=@_;
|
||||
if ( grep( /$value/, @{$array} ) ) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
sub get_module_data_aix_ram_cpu ($$$$) {
|
||||
my ($name, $hwinfo, $keys, $modules) = @_;
|
||||
my %module;
|
||||
# Store keys
|
||||
foreach my $key (@{$keys}) {
|
||||
push (@{$module{'_keys'}}, $key);
|
||||
}
|
||||
# Parse module data
|
||||
foreach my $line (@{$hwinfo}) {
|
||||
foreach my $key (@{$keys}) {
|
||||
if ($line =~ /$key:\s+(.+)/) {
|
||||
$module{$key} = $1;
|
||||
$module{$key} =~ s/,/ /g;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# No data found
|
||||
#my @data = keys (%module);
|
||||
#return unless ($#data >= 0);
|
||||
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
sub get_module_data_aix ($$$$) {
|
||||
my ($name,$hwinfo,$regex,$modules) = @_;
|
||||
my %module;
|
||||
foreach my $line (@{$hwinfo}) {
|
||||
$line =~ s/\s{2,}/;/g;
|
||||
$line =~ s/\+ //g;
|
||||
$line =~ s/\* //g;
|
||||
}
|
||||
foreach my $line (@{$hwinfo}) {
|
||||
if ($line =~ /$regex/){
|
||||
my ($var1, $var2, $var3) = split /;/, $line;
|
||||
my %module;
|
||||
$module{'device'} = $var1;
|
||||
$module{'serial'} = $var2;
|
||||
$module{'description'}=$var3;
|
||||
$module{'_keys'} = ['device','serial','description'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Get a list of information file system in machine
|
||||
sub get_file_system($$) {
|
||||
my ($name, $modules) = @_;
|
||||
|
||||
my @fileSystems = `df -hP | tail -n +2`; #remove the titles of columns
|
||||
my @fileSystems;
|
||||
if (is_enabled $AIX){
|
||||
@fileSystems = `df -gP | tail -n +2`;
|
||||
} else {
|
||||
@fileSystems = `df -hP | tail -n +2`; #remove the titles of columns
|
||||
}
|
||||
|
||||
foreach my $row (@fileSystems) {
|
||||
next unless ($row =~ /^(\S+)\s+\S+\s+(\S+)\s+(\S+)\s+\S+\s+(\S+)/);
|
||||
|
@ -73,94 +147,110 @@ sub get_file_system($$) {
|
|||
$module{'used'} = $2;
|
||||
$module{'avail'} = $3;
|
||||
$module{'mount'} = $4;
|
||||
$module{'_keys'} = ['filesystem', 'used','avail', 'mount'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
$module{'_keys'} = ['filesystem', 'used','avail', 'mount'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
}
|
||||
|
||||
# Get a list of services init in machine
|
||||
sub get_servicies_init_machine($$) {
|
||||
my ($name, $modules) = @_;
|
||||
my $runlevel = `who -r | awk '{print \$2}'`;
|
||||
my $runlevel;
|
||||
if (is_enabled $AIX) {
|
||||
$runlevel = `who -r | awk '{print \$3}'`;
|
||||
} else {
|
||||
$runlevel = `who -r | awk '{print \$2}'`;
|
||||
}
|
||||
|
||||
#ini trim($runlevel)
|
||||
$runlevel =~ s/^\s*//; #ltrim
|
||||
$runlevel =~ s/\s*$//; #rtrim
|
||||
#end trim($runlevel)
|
||||
|
||||
my $script = "";
|
||||
|
||||
my $script;
|
||||
|
||||
if (-e "/etc/rc" . $runlevel .".d/") {
|
||||
$script = "ls /etc/rc" . $runlevel .".d/ -l | grep \"^l.*\" | awk \"{print \\\$NF}\" | sed -e \"s/\\.\\.\\///g\" | sed -e \"s/.*init\\.d\\///g\"";
|
||||
$script = "ls -l /etc/rc" . $runlevel .".d/ | grep \"^l.*\" | awk \"{print \\\$NF}\" | sed -e \"s/\\.\\.\\///g\" | sed -e \"s/.*init\\.d\\///g\"";
|
||||
}
|
||||
else {
|
||||
$script = "ls /etc/rc.d/rc" . $runlevel .".d/ -l | grep \"^l.*\" | grep \" S.* \" | awk \"{print \\\$NF}\" | sed -e \"s/\\.\\.\\///g\" | sed -e \"s/.*init\\.d\\///g\"";
|
||||
|
||||
$script = "ls -l /etc/rc.d/rc" . $runlevel .".d/ | grep \"^l.*\" | grep \" S.* \" | awk \"{print \\\$NF}\" | sed -e \"s/\\.\\.\\///g\" | sed -e \"s/.*init\\.d\\///g\"";
|
||||
}
|
||||
|
||||
|
||||
my @services = `$script`;
|
||||
foreach my $row (@services) {
|
||||
|
||||
my %module;
|
||||
$row =~ s/\n//;
|
||||
$module{'service'} = $row;
|
||||
$module{'_keys'} = ['service'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
$row =~ s/\n//;
|
||||
$module{'service'} = $row;
|
||||
$module{'_keys'} = ['service'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
}
|
||||
|
||||
# Get a list of running processes
|
||||
sub get_processes ($$) {
|
||||
my ($name, $modules) = @_;
|
||||
my $script;
|
||||
if (is_enabled $AIX) {
|
||||
$script = "ps -eo args | tail -n +2";
|
||||
} else {
|
||||
$script = "ps -eo command | tail -n +2";
|
||||
}
|
||||
|
||||
my $script = "ps -eo command";
|
||||
|
||||
my @services = `$script`;
|
||||
foreach my $row (@services) {
|
||||
my %module;
|
||||
# Remove carriage returns
|
||||
$row =~ s/[\n\l\f]//g;
|
||||
# Replace semicolon by comma to avoid parse errors
|
||||
$row =~ s/;/,/g;
|
||||
$module{'service'} = $row;
|
||||
$module{'_keys'} = ['service'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
my @services = `$script`;
|
||||
foreach my $row (@services) {
|
||||
my %module;
|
||||
# Remove carriage returns
|
||||
$row =~ s/[\n\l\f]//g;
|
||||
# Replace semicolon by comma to avoid parse errors
|
||||
$row =~ s/;/,/g;
|
||||
$module{'service'} = $row;
|
||||
$module{'_keys'} = ['service'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
}
|
||||
|
||||
# Get a list of valid users in the system
|
||||
sub get_users ($$) {
|
||||
my ($name, $modules) = @_;
|
||||
|
||||
my $script = "cat /etc/passwd";
|
||||
my ($name, $modules) = @_;
|
||||
my $script = "cat /etc/passwd";
|
||||
my $user = "";
|
||||
my $estado = "";
|
||||
|
||||
my @services = `$script`;
|
||||
foreach my $row (@services) {
|
||||
my %module;
|
||||
my @services = `$script`;
|
||||
foreach my $row (@services) {
|
||||
my %module;
|
||||
|
||||
next unless ($row =~ /^([A-Za-z0-9\-\_]*)/);
|
||||
|
||||
$user = $1;
|
||||
$script = `passwd -S $user`;
|
||||
if ( $script =~ /^(\S+)\sP./){
|
||||
$module{'user'} = $user;
|
||||
$module{'_keys'} = ['user'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
next unless ($row =~ /^([A-Za-z0-9\-\_]*)/);
|
||||
if (is_enabled $AIX) {
|
||||
$user = $1;
|
||||
$script = `lsuser $user`;
|
||||
if ( $script =~ /^(\S+)\sid./){
|
||||
$module{'user'} = $user;
|
||||
$module{'_keys'} = ['user'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
} else {
|
||||
$user = $1;
|
||||
$script = `passwd -S $user`;
|
||||
if ( $script =~ /^(\S+)\sP./){
|
||||
$module{'user'} = $user;
|
||||
$module{'_keys'} = ['user'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
# Show Kernel Information
|
||||
sub get_kernel_info ($$) {
|
||||
my ($name, $modules) = @_;
|
||||
my $script = `uname -a | tr -d \";\"`;
|
||||
my %module;
|
||||
my ($name, $modules) = @_;
|
||||
my $script = `uname -a | tr -d \";\"`;
|
||||
my %module;
|
||||
|
||||
$module{'Kernel'} = $script;
|
||||
$module{'_keys'} = ['Kernel'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
$module{'Kernel'} = $script;
|
||||
$module{'_keys'} = ['Kernel'];
|
||||
push (@{$modules->{$name}}, \%module);
|
||||
}
|
||||
|
||||
|
||||
|
@ -171,11 +261,13 @@ sub get_software_module_data ($$) {
|
|||
# Guess the current distribution
|
||||
my $distrib_id = "";
|
||||
|
||||
if ( -e "/etc/SuSE-release"){
|
||||
if (is_enabled $AIX) {
|
||||
$distrib_id = "AIX";
|
||||
}elsif ( -e "/etc/SuSE-release"){
|
||||
$distrib_id = "SUSE";
|
||||
} elsif ( -e "/etc/redhat-release"){
|
||||
}elsif ( -e "/etc/redhat-release"){
|
||||
$distrib_id = "REDHAT";
|
||||
} else {
|
||||
}else {
|
||||
$distrib_id = "DEBIAN";
|
||||
}
|
||||
|
||||
|
@ -183,7 +275,9 @@ sub get_software_module_data ($$) {
|
|||
my @soft;
|
||||
if ($distrib_id eq 'DEBIAN') {
|
||||
@soft = `dpkg -l | grep ii`;
|
||||
} else {
|
||||
}elsif ($distrib_id eq 'AIX') {
|
||||
@soft = `lslpp -Lcq | awk -F: '{print "ii "\$1" "\$3" "\$8}'`;
|
||||
}else {
|
||||
# Sometimes rpm return data splitted in two lines, and with dupes. Thats bad for our inventory system
|
||||
@soft = `rpm -q -a --qf "ii %{NAME} %{VERSION} %{SUMMARY}\n" | grep "^ii" | sort -u`;
|
||||
}
|
||||
|
@ -197,7 +291,7 @@ sub get_software_module_data ($$) {
|
|||
$module{'program'} = $1;
|
||||
$module{'version'} = $2;
|
||||
$module{'description'} = $3;
|
||||
# Replace semicolon by comma to avoid parse errors
|
||||
# Replace semicolon by comma to avoid parse errors
|
||||
$module{'program'} =~ s/;/,/g;
|
||||
$module{'version'} =~ s/;/,/g;
|
||||
$module{'description'} =~ s/;/,/g;
|
||||
|
@ -211,67 +305,95 @@ sub get_software_module_data ($$) {
|
|||
#Get the list of interfaces with the ip assigned
|
||||
sub get_ips ($$) {
|
||||
my ($name, $modules) = @_;
|
||||
my @interfaces;
|
||||
my $ifconfig;
|
||||
if (is_enabled $AIX) {
|
||||
$ifconfig = `ifconfig -a`;
|
||||
} else {
|
||||
$ifconfig = `ifconfig`;
|
||||
}
|
||||
|
||||
my $ifconfig = `ifconfig`;
|
||||
|
||||
my @ifconfig_array = split("\n", $ifconfig);
|
||||
|
||||
for(my $i = 0; $i<$#ifconfig_array; $i++) {
|
||||
|
||||
#Check for an interface
|
||||
if ($ifconfig_array[$i] =~ /Link/) {
|
||||
my %info;
|
||||
|
||||
my @line_split = split(" ", $ifconfig_array[$i]);
|
||||
|
||||
#Get interface name
|
||||
$info{'interface'} = $line_split[0];
|
||||
|
||||
#Get IP address
|
||||
my $line = $ifconfig_array[$i+1];
|
||||
|
||||
$line =~ s/\s+//g;
|
||||
my @ifconfig_array = split("\n", $ifconfig);
|
||||
|
||||
@line_split = split(":", $line);
|
||||
|
||||
if($line_split[1] =~ /(\d+\.\d+\.\d+\.\d+).+/) {
|
||||
$info{'ip'} = $1;
|
||||
}
|
||||
|
||||
$info{'_keys'} = ['interface', 'ip'];
|
||||
push (@{$modules->{$name}}, \%info);
|
||||
|
||||
}
|
||||
foreach (@ifconfig_array){
|
||||
if ($_=~/(.*)flags/){
|
||||
my $match;
|
||||
($match)=$_=~/^(.*?)\: flags/;
|
||||
$match=~s/://;
|
||||
push @interfaces,$match;
|
||||
}
|
||||
}
|
||||
foreach (@interfaces) {
|
||||
my $ifconfig_item=`ifconfig $_`;
|
||||
my $interface=$_;
|
||||
my @ip_array = split("\n", $ifconfig_item);
|
||||
foreach (@ip_array) {
|
||||
if ($_=~/(?<=inet )(.*)(?= netmask)/){
|
||||
my $ip;
|
||||
($ip)=$_=~/inet (.*) netmask/;
|
||||
my %info;
|
||||
$info{'interface'} = $interface;
|
||||
$info{'ip'} = $ip;
|
||||
$info{'_keys'} = ['interface','ip'];
|
||||
push (@{$modules->{$name}}, \%info);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Get route table
|
||||
sub get_route_table ($$) {
|
||||
my ($name, $modules) = @_;
|
||||
|
||||
my $route_table = `route`;
|
||||
|
||||
my @table_split = split("\n", $route_table);
|
||||
|
||||
for (my $i=2; $i<=$#table_split; $i++) {
|
||||
|
||||
my @split = split(" ", $table_split[$i]);
|
||||
|
||||
my %info;
|
||||
|
||||
$info{'destination'} = $split[0];
|
||||
$info{'gateway'} = $split[1];
|
||||
$info{'mask'} = $split[2];
|
||||
$info{'flags'} = $split[3];
|
||||
$info{'metric'} = $split[4];
|
||||
$info{'ref'} = $split[5];
|
||||
$info{'use'} = $split[6];
|
||||
$info{'interface'} = $split[7];
|
||||
|
||||
$info{'_keys'} = ['destination', 'gateway', 'mask', 'flags', 'metric', 'use', 'interface'];
|
||||
|
||||
push (@{$modules->{$name}}, \%info);
|
||||
}
|
||||
my ($name, $modules) = @_;
|
||||
my $route_table;
|
||||
my @table_split;
|
||||
if (is_enabled $AIX) {
|
||||
$route_table = `netstat -rn`;
|
||||
@table_split = split("\n", $route_table);
|
||||
my $length=scalar @table_split;
|
||||
for (my $i=4; $i<=$length-4; $i++) {
|
||||
|
||||
my @split = split(" ", $table_split[$i]);
|
||||
|
||||
my %info;
|
||||
|
||||
$info{'destination'} = $split[0];
|
||||
$info{'gateway'} = $split[1];
|
||||
$info{'mask'} = $split[2];
|
||||
$info{'flags'} = $split[3];
|
||||
$info{'metric'} = $split[4];
|
||||
$info{'ref'} = $split[5];
|
||||
$info{'use'} = $split[6];
|
||||
$info{'interface'} = $split[7];
|
||||
|
||||
$info{'_keys'} = ['destination', 'gateway', 'mask', 'flags', 'metric', 'use', 'interface'];
|
||||
|
||||
push (@{$modules->{$name}}, \%info);
|
||||
}
|
||||
} else {
|
||||
$route_table = `route`;
|
||||
my @table_split = split("\n", $route_table);
|
||||
|
||||
for (my $i=2; $i<=$#table_split; $i++) {
|
||||
|
||||
my @split = split(" ", $table_split[$i]);
|
||||
|
||||
my %info;
|
||||
|
||||
$info{'destination'} = $split[0];
|
||||
$info{'gateway'} = $split[1];
|
||||
$info{'mask'} = $split[2];
|
||||
$info{'flags'} = $split[3];
|
||||
$info{'metric'} = $split[4];
|
||||
$info{'ref'} = $split[5];
|
||||
$info{'use'} = $split[6];
|
||||
$info{'interface'} = $split[7];
|
||||
|
||||
$info{'_keys'} = ['destination', 'gateway', 'mask', 'flags', 'metric', 'use', 'interface'];
|
||||
|
||||
push (@{$modules->{$name}}, \%info);
|
||||
}
|
||||
}
|
||||
}
|
||||
# Print module data
|
||||
sub print_module ($$) {
|
||||
|
@ -309,14 +431,18 @@ my $enable_all = 0;
|
|||
|
||||
$interval = $ARGV[0];
|
||||
if ($#ARGV == 0){
|
||||
$enable_all = 1;
|
||||
$enable_all = 1;
|
||||
}
|
||||
if ($interval!=/[:alpha:]/){
|
||||
splice @ARGV,0,1;
|
||||
}
|
||||
|
||||
foreach my $module (@ARGV) {
|
||||
foreach my $module (@ARGV) {
|
||||
if ($module eq "all"){
|
||||
$enable_all = 1;
|
||||
}
|
||||
$enabled{$module} = 1;
|
||||
$enable_all = 1;
|
||||
}else {
|
||||
$enabled{$module} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
# Check execution interval
|
||||
|
@ -333,76 +459,107 @@ close (FILE);
|
|||
# Retrieve hardware information
|
||||
$Mode = 'LSHW';
|
||||
$Separator = '\s+\*\-';
|
||||
my @hwinfo = `lshw 2>/dev/null`;
|
||||
if ($? != 0) {
|
||||
$Mode = 'HWINFO';
|
||||
$Separator = 'Hardware Class:';
|
||||
@hwinfo = `hwinfo --cpu --memory --gfxcard --netcard --cdrom --disk 2>/dev/null`;
|
||||
my @hwinfo;
|
||||
if (is_enabled $AIX) {
|
||||
$Separator = '^\s*$';
|
||||
@hwinfo=`prtconf 2>/dev/null`;
|
||||
} else {
|
||||
@hwinfo = `lshw 2>/dev/null`;
|
||||
if ($? != 0) {
|
||||
$Mode = 'HWINFO';
|
||||
$Separator = 'Hardware Class:';
|
||||
@hwinfo = `hwinfo --cpu --memory --gfxcard --netcard --cdrom --disk 2>/dev/null`;
|
||||
}
|
||||
}
|
||||
|
||||
# Parse hardware information
|
||||
my %modules;
|
||||
while (my $line = shift (@hwinfo)) {
|
||||
|
||||
if (is_enabled $AIX) {
|
||||
#CPU
|
||||
# VIDEO
|
||||
### Not avilable in AIX ###
|
||||
# NIC
|
||||
### Not relevant in AIX ###
|
||||
if ((test_contain('ent',\@hwinfo)) && ($enable_all == 1 || $enabled{'nic'} == 1)) {
|
||||
get_module_data_aix ('NIC',\@hwinfo,'^ent',\%modules);
|
||||
}
|
||||
if ((test_contain('hdisk',\@hwinfo)) && ($enable_all == 1 || $enabled{'hd'} == 1)) {
|
||||
get_module_data_aix ('HD',\@hwinfo,'^hdisk',\%modules);
|
||||
}
|
||||
|
||||
foreach my $line (@hwinfo) {
|
||||
chomp ($line);
|
||||
#CPU
|
||||
if (($line =~ /^Memory Size:/) && ($enable_all == 1 || $enabled{'ram'} == 1)) {
|
||||
get_module_data_aix_ram_cpu ('RAM', \@hwinfo, ['Memory Size','Good Memory Size'], \%modules);
|
||||
}
|
||||
|
||||
if (($line =~ /^System Model/) && ($enable_all == 1 || $enabled{'cpu'} == 1)) {
|
||||
get_module_data_aix_ram_cpu ('CPU', \@hwinfo, ['System Model', 'Processor Implementation Mode', 'Number Of Processors'], \%modules);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
# Parse hardware information
|
||||
while (my $line= shift (@hwinfo)) {
|
||||
chomp ($line);
|
||||
# CPU
|
||||
if (($line =~ /\*\-cpu/ || $line =~ /Hardware Class: cpu/) && ($enable_all == 1 || $enabled{'cpu'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('CPU', \@hwinfo, ['product', 'vendor', 'capacity'], \%modules);
|
||||
} else {
|
||||
get_module_data ('CPU', \@hwinfo, ['Model', 'Vendor', 'Clock'], \%modules);
|
||||
}
|
||||
}
|
||||
|
||||
# CPU
|
||||
if (($line =~ /\*\-cpu/ || $line =~ /Hardware Class: cpu/) && ($enable_all == 1 || $enabled{'cpu'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('CPU', \@hwinfo, ['product', 'vendor', 'capacity'], \%modules);
|
||||
} else {
|
||||
get_module_data ('CPU', \@hwinfo, ['Model', 'Vendor', 'Clock'], \%modules);
|
||||
}
|
||||
}
|
||||
# RAM
|
||||
if (($line =~ /\*\-bank/ || $line =~ /\*\-memory/ || $line =~ /Hardware Class: memory/) && ($enable_all == 1 || $enabled{'ram'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('RAM', \@hwinfo, ['description', 'size'], \%modules);
|
||||
} else {
|
||||
get_module_data ('RAM', \@hwinfo, ['Model', 'Memory Size'], \%modules);
|
||||
}
|
||||
}
|
||||
|
||||
# RAM
|
||||
if (($line =~ /\*\-bank/ || $line =~ /Hardware Class: memory/) && ($enable_all == 1 || $enabled{'ram'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('RAM', \@hwinfo, ['description', 'size'], \%modules);
|
||||
} else {
|
||||
get_module_data ('RAM', \@hwinfo, ['Model', 'Memory Size'], \%modules);
|
||||
}
|
||||
}
|
||||
# VIDEO
|
||||
if (($line =~ /\*\-display/ || $line =~ /Hardware Class: graphics card/) && ($enable_all == 1 || $enabled{'video'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('VIDEO', \@hwinfo, ['product', 'description', 'vendor'], \%modules);
|
||||
} else {
|
||||
# Spaces before Device and Vendor are intentional to avoid matching SubDevice and SubVendor
|
||||
get_module_data ('VIDEO', \@hwinfo, ['Model', ' Device', ' Vendor'], \%modules);
|
||||
}
|
||||
}
|
||||
|
||||
# VIDEO
|
||||
if (($line =~ /\*\-display/ || $line =~ /Hardware Class: graphics card/) && ($enable_all == 1 || $enabled{'video'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('VIDEO', \@hwinfo, ['product', 'description', 'vendor'], \%modules);
|
||||
} else {
|
||||
# Spaces before Device and Vendor are intentional to avoid matching SubDevice and SubVendor
|
||||
get_module_data ('VIDEO', \@hwinfo, ['Model', ' Device', ' Vendor'], \%modules);
|
||||
}
|
||||
}
|
||||
# NIC
|
||||
if (($line =~ /\*\-network/ || $line =~ /Hardware Class: network/) && ($enable_all == 1 || $enabled{'nic'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('NIC', \@hwinfo, ['product', 'description', 'vendor', 'serial'], \%modules);
|
||||
} else {
|
||||
# Spaces before Device and Vendor are intentional to avoid matching SubDevice and SubVendor
|
||||
get_module_data ('NIC', \@hwinfo, ['Model', ' Device', ' Vendor', 'HW Address'], \%modules);
|
||||
}
|
||||
}
|
||||
|
||||
# NIC
|
||||
if (($line =~ /\*\-network/ || $line =~ /Hardware Class: network/) && ($enable_all == 1 || $enabled{'nic'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('NIC', \@hwinfo, ['product', 'description', 'vendor', 'serial'], \%modules);
|
||||
} else {
|
||||
# Spaces before Device and Vendor are intentional to avoid matching SubDevice and SubVendor
|
||||
get_module_data ('NIC', \@hwinfo, ['Model', ' Device', ' Vendor', 'HW Address'], \%modules);
|
||||
}
|
||||
}
|
||||
|
||||
# CDROM
|
||||
if (($line =~ /\*\-cdrom/ || $line =~ /Hardware Class: cdrom/) && ($enable_all == 1 || $enabled{'cdrom'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('CDROM', \@hwinfo, ['product', 'description', 'vendor'], \%modules);
|
||||
} else {
|
||||
# Spaces before Device and Vendor are intentional to avoid matching SubDevice and SubVendor
|
||||
get_module_data ('CDROM', \@hwinfo, ['Model', ' Device', ' Vendor'], \%modules);
|
||||
}
|
||||
}
|
||||
# CDROM
|
||||
if (($line =~ /\*\-cdrom/ || $line =~ /Hardware Class: cdrom/) && ($enable_all == 1 || $enabled{'cdrom'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('CDROM', \@hwinfo, ['product', 'description', 'vendor'], \%modules);
|
||||
} else {
|
||||
# Spaces before Device and Vendor are intentional to avoid matching SubDevice and SubVendor
|
||||
get_module_data ('CDROM', \@hwinfo, ['Model', ' Device', ' Vendor'], \%modules);
|
||||
}
|
||||
}
|
||||
|
||||
# HD
|
||||
if (($line =~ /\*\-disk/ || $line =~ /Hardware Class: disk/) && ($enable_all == 1 || $enabled{'hd'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('HD', \@hwinfo, ['product', 'description', 'size'], \%modules);
|
||||
} else {
|
||||
get_module_data ('HD', \@hwinfo, ['Model', 'Serial ID', 'Size'], \%modules);
|
||||
}
|
||||
}
|
||||
# HD
|
||||
if (($line =~ /\*\-disk/ || $line =~ /Hardware Class: disk/) && ($enable_all == 1 || $enabled{'hd'} == 1)) {
|
||||
if ($Mode eq 'LSHW') {
|
||||
get_module_data ('HD', \@hwinfo, ['product', 'description', 'size'], \%modules);
|
||||
} else {
|
||||
get_module_data ('HD', \@hwinfo, ['Model', 'Serial ID', 'Size'], \%modules);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Software
|
||||
if ($enable_all == 1 || $enabled{'software'} == 1) {
|
||||
get_software_module_data ('Software', \%modules);
|
||||
|
@ -410,12 +567,12 @@ if ($enable_all == 1 || $enabled{'software'} == 1) {
|
|||
|
||||
#init_services
|
||||
if ($enable_all == 1 || $enabled{'init_services'} == 1) {
|
||||
get_servicies_init_machine ('Init services', \%modules);
|
||||
get_servicies_init_machine ('Init_services', \%modules);
|
||||
}
|
||||
|
||||
#filesystem
|
||||
if ($enable_all == 1 || $enabled{'filesystem'} == 1) {
|
||||
get_file_system('File system', \%modules);
|
||||
get_file_system('Filesystem', \%modules);
|
||||
}
|
||||
|
||||
#processes
|
||||
|
@ -442,7 +599,6 @@ if ($enable_all == 1 || $enabled{'route'} == 1) {
|
|||
if ($enable_all == 1 || $enabled{'kernel'} == 1){
|
||||
get_kernel_info ('Kernel', \%modules);
|
||||
}
|
||||
|
||||
# Print module data
|
||||
print "<inventory>\n";
|
||||
while (my ($name, $module) = each (%modules)) {
|
||||
|
|
|
@ -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.734
|
||||
|
||||
# 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.734}
|
||||
|
||||
ApplicationID
|
||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{190326}
|
||||
{190508}
|
||||
|
||||
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 = "";
|
||||
}
|
||||
|
@ -733,6 +734,13 @@ Pandora_Module::getXml () {
|
|||
module_xml += this->module_ff_interval;
|
||||
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 != "") {
|
||||
|
@ -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 = "";
|
||||
|
@ -507,6 +509,10 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||
if (module_ff_interval == "") {
|
||||
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);
|
||||
|
@ -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){
|
||||
|
@ -1447,6 +1460,10 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||
if (module_ff_interval != "") {
|
||||
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 190326)")
|
||||
#define PANDORA_VERSION ("7.0NG.734(Build 190508)")
|
||||
|
||||
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 190326))"
|
||||
VALUE "ProductVersion", "(7.0NG.734(Build 190508))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.732-190326
|
||||
Version: 7.0NG.734-190508
|
||||
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-190326"
|
||||
pandora_version="7.0NG.734-190508"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -10,5 +10,16 @@
|
|||
"require": {
|
||||
"mpdf/mpdf": "^7.1",
|
||||
"swiftmailer/swiftmailer": "^6.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Models\\": "include/rest-api/models",
|
||||
"Enterprise\\Models\\": "enterprise/include/rest-api/models"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -378,7 +378,8 @@ function mainAgentsAlerts()
|
|||
'alerts_agents'
|
||||
);
|
||||
|
||||
echo '<table class="databox data" cellpadding="0" cellspacing="0" border="0" width=100%>';
|
||||
echo '<table class="info_table" cellpadding="0" cellspacing="0" border="0" width=100%>';
|
||||
echo '<thead><tr>';
|
||||
echo "<th width='140px' >".__('Agents').' / '.__('Alert templates').'</th>';
|
||||
|
||||
if ($hor_offset > 0) {
|
||||
|
@ -421,9 +422,10 @@ function mainAgentsAlerts()
|
|||
continue;
|
||||
}
|
||||
|
||||
echo '<th width="20px" >'.io_safe_output($tname).html_print_image('images/information_alerts.png', true, ['title' => io_safe_output($tname), 'style' => 'margin-left:5px' ]).'</th>';
|
||||
echo '<th width="20px" >'.io_safe_output($tname).'</th>';
|
||||
}
|
||||
|
||||
echo '</tr></thead>';
|
||||
if (($hor_offset + $block) < $ntemplates) {
|
||||
$new_hor_offset = ($hor_offset + $block);
|
||||
echo "<th width='20px' style='' rowspan='".($nagents + 1)."'>
|
||||
|
@ -455,7 +457,7 @@ function mainAgentsAlerts()
|
|||
$cellstyle = 'background:'.COL_ALERTFIRED.';';
|
||||
}
|
||||
|
||||
echo '<td style=";'.$cellstyle.'"> ';
|
||||
echo '<td style=";'.$cellstyle.'" class="action_buttons"> ';
|
||||
|
||||
$uniqid = uniqid();
|
||||
echo '<div>';
|
||||
|
@ -478,6 +480,23 @@ function mainAgentsAlerts()
|
|||
}
|
||||
|
||||
echo '</table>';
|
||||
|
||||
ui_pagination(
|
||||
$nagents,
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
'offset',
|
||||
true,
|
||||
'pagination-bottom',
|
||||
'',
|
||||
[
|
||||
'count' => '',
|
||||
'offset' => 'offset_param',
|
||||
],
|
||||
'alerts_agents'
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -487,7 +506,7 @@ function mainAgentsAlerts()
|
|||
function print_alerts_summary_modal_window($id, $alerts)
|
||||
{
|
||||
$table->width = '98%';
|
||||
$table->class = 'databox';
|
||||
$table->class = 'info_table';
|
||||
$table->data = [];
|
||||
|
||||
$table->head[0] = __('Module');
|
||||
|
|
|
@ -148,7 +148,7 @@ function dbmgr_extension_main()
|
|||
echo "<div style='overflow: auto;'>";
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->head = array_keys($result[0]);
|
||||
|
||||
$table->data = $result;
|
||||
|
|
|
@ -45,11 +45,9 @@ if (!empty($files)) {
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->style = [];
|
||||
$table->style[1] = 'max-width: 200px;';
|
||||
$table->style[2] = 'text-align: center;';
|
||||
$table->style[3] = 'text-align: center;';
|
||||
$table->style[4] = 'text-align: center;';
|
||||
$table->head = [];
|
||||
$table->head[0] = __('Name');
|
||||
|
@ -81,6 +79,7 @@ if (!empty($files)) {
|
|||
// Last modification
|
||||
// Public URL
|
||||
$data[4] = '';
|
||||
$table->cellclass[][4] = 'action_buttons';
|
||||
if (!empty($file['hash'])) {
|
||||
$public_url = ui_get_full_url(EXTENSIONS_DIR.'/files_repo/files_repo_get_file.php?file='.$file['hash']);
|
||||
$message = __('Copy to clipboard').': Ctrl+C -> Enter';
|
||||
|
@ -92,7 +91,7 @@ if (!empty($files)) {
|
|||
}
|
||||
|
||||
$data[4] .= "<a href=\"$url\" target=\"_blank\">";
|
||||
$data[4] .= html_print_image('images/download.png', true, ['title' => __('Download')]);
|
||||
$data[4] .= html_print_image('images/download.png', true, ['title' => __('Download'), 'style' => 'padding:3px' ]);
|
||||
// Download image
|
||||
$data[4] .= '</a>';
|
||||
|
||||
|
|
|
@ -66,10 +66,10 @@ function users_extension_main_god($god=true)
|
|||
$rows = [];
|
||||
echo "<div class='nf'>".__('No other users connected').'</div>';
|
||||
} else {
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->size = [];
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
|
|
|
@ -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,54 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `tnetflow_filter` DROP COLUMN `output`;
|
||||
|
||||
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';
|
||||
|
||||
ALTER TABLE `trecon_script` ADD COLUMN `type` int NOT NULL default 0;
|
||||
ALTER TABLE `trecon_task` ADD COLUMN `type` int NOT NULL default 0;
|
||||
|
||||
UPDATE `trecon_script` SET `type` = 1 WHERE `name`="Discovery.Application.VMware";
|
||||
UPDATE `trecon_script` SET `type` = 2 WHERE `name`="Discovery.Cloud";
|
||||
UPDATE `trecon_script` SET `type` = 3 WHERE `name` LIKE "IPAM%Recon";
|
||||
UPDATE `trecon_script` SET `type` = 4 WHERE `name` LIKE "IPMI%Recon";
|
||||
|
||||
UPDATE `trecon_task` SET `type`=3 WHERE `description`="Discovery.Application.VMware";
|
||||
UPDATE `trecon_task` SET `type`=2 WHERE `description`="Discovery.Cloud";
|
||||
UPDATE `trecon_task` SET `type`=7 WHERE `description`="Discovery.Cloud.RDS";
|
||||
|
||||
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,14 @@ 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 '';
|
||||
|
||||
-- ----------------------------------------------------------------------
|
||||
-- Add column in table `tnetflow_filter`
|
||||
-- ----------------------------------------------------------------------
|
||||
ALTER TABLE `tnetflow_filter` DROP COLUMN `output`;
|
||||
|
||||
|
||||
-- ----------------------------------------------------------------------
|
||||
-- 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.
|
||||
|
|
|
@ -18,10 +18,14 @@ require_once 'include/functions_notifications.php';
|
|||
// Global errors/warnings checking.
|
||||
config_check();
|
||||
|
||||
?>
|
||||
|
||||
<div id="header_table">
|
||||
<div id="header_table_inner">
|
||||
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 ===============================================
|
||||
$notifications_numbers = notifications_get_counters();
|
||||
|
@ -175,7 +179,8 @@ require_once 'include/functions_notifications.php';
|
|||
);
|
||||
|
||||
if ((isset($select[0]['time_autorefresh']) === true)
|
||||
&& $select[0]['time_autorefresh'] !== 0 && !$config['refr']
|
||||
&& $select[0]['time_autorefresh'] !== 0
|
||||
&& $config['refr'] === null
|
||||
) {
|
||||
$config['refr'] = $select[0]['time_autorefresh'];
|
||||
$autorefresh_txt .= ' (<span id="refrcounter">';
|
||||
|
@ -279,7 +284,7 @@ require_once 'include/functions_notifications.php';
|
|||
$header_support .= '</a></div>';
|
||||
|
||||
// Documentation.
|
||||
$header_docu = '<div id="header_support">';
|
||||
$header_docu = '<div id="header_docu">';
|
||||
$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>';
|
||||
|
@ -586,9 +591,7 @@ require_once 'include/functions_notifications.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');
|
||||
|
|
|
@ -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,74 @@ 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->class = 'info_table';
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->width = '100%';
|
||||
// Don't specify px
|
||||
// Don't specify px.
|
||||
$table->data = [];
|
||||
$table->size = [];
|
||||
$table->size[0] = '5%';
|
||||
|
@ -212,38 +291,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 +308,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 +335,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,7 +45,11 @@ 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'];
|
||||
|
@ -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();
|
||||
|
|
|
@ -4,29 +4,35 @@
|
|||
<style>
|
||||
|
||||
#alert_messages_na{
|
||||
-moz-border-bottom-right-radius: 5px;
|
||||
-webkit-border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
z-index:2;
|
||||
position:fixed;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
width:650px;
|
||||
height: 400px;
|
||||
background:white;
|
||||
background-image:url('images/imagen-no-acceso.jpg');
|
||||
background-repeat:no-repeat;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-shadow:4px 5px 10px 3px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.modalheade{
|
||||
text-align:center;
|
||||
width:100%;
|
||||
height:37px;
|
||||
left:0px;
|
||||
background-color:#82b92e;
|
||||
position:absolute;
|
||||
top:0;
|
||||
}
|
||||
.modalheadertex{
|
||||
color:white;
|
||||
position:relative;
|
||||
color:#000;
|
||||
font-family:Nunito;
|
||||
font-size:13pt;
|
||||
top:8px;
|
||||
line-height: 40px;
|
||||
font-size: 23pt;
|
||||
margin-bottom:30px;
|
||||
}
|
||||
.modalclose{
|
||||
cursor:pointer;
|
||||
|
@ -37,50 +43,59 @@
|
|||
}
|
||||
.modalconten{
|
||||
color:black;
|
||||
background:white;
|
||||
}
|
||||
.modalcontentim{
|
||||
float:left;
|
||||
margin-left:30px;
|
||||
margin-top:30px;
|
||||
margin-bottom:30px;
|
||||
width:300px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
.modalcontenttex{
|
||||
float:left;
|
||||
text-align:justify;
|
||||
text-align:left;
|
||||
color:black;
|
||||
font-size: 9.5pt;
|
||||
font-size: 11pt;
|
||||
line-height:13pt;
|
||||
margin-top:30px;
|
||||
width:430px;
|
||||
margin-left:30px;
|
||||
margin-bottom:30px;
|
||||
}
|
||||
.modalokbutto{
|
||||
cursor:pointer;
|
||||
text-align:center;
|
||||
margin-right:45px;
|
||||
float:right;
|
||||
display: inline-block;
|
||||
padding: 6px 45px;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
margin-bottom:30px;
|
||||
border-radius: 3px;width:90px;height:30px;background-color:white;border: 1px solid #82b92e;
|
||||
border-radius: 3px;
|
||||
background-color:white;
|
||||
border: 1px solid #82b92e;
|
||||
}
|
||||
.modalokbuttontex{
|
||||
color:#82b92e;font-family:Nunito;font-size:10pt;position:relative;top:6px;
|
||||
color:#82b92e;
|
||||
font-family:Nunito;
|
||||
font-size:13pt;
|
||||
}
|
||||
.modalgobutto{
|
||||
cursor:pointer;text-align:center;margin-right:15px;margin-bottom:30px;float:right;-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;border-radius: 3px;width:240px;height:30px;background-color:white;border: 1px solid #82b92e;
|
||||
cursor:pointer;
|
||||
text-align:center;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
background-color:white;
|
||||
border: 1px solid #82b92e;
|
||||
}
|
||||
.modalgobuttontex{
|
||||
color:#82b92e;font-family:Nunito;font-size:10pt;position:relative;top:6px;
|
||||
color:#82b92e;
|
||||
font-family:Nunito;
|
||||
font-size:10pt;
|
||||
}
|
||||
|
||||
|
||||
#opacida{
|
||||
position:absolute;background:black;opacity:0.6;z-index:-1;left:0px;top:0px;width:100%;height:100%;
|
||||
#opacidad{
|
||||
position:fixed;
|
||||
background:black;
|
||||
opacity:0.6;
|
||||
z-index:-1;
|
||||
left:0px;
|
||||
top:0px;
|
||||
width:100%;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
/*
|
||||
.textodialog{
|
||||
margin-left: 0px;
|
||||
color:#333;
|
||||
|
@ -100,53 +115,50 @@ position:absolute;background:black;opacity:0.6;z-index:-1;left:0px;top:0px;width
|
|||
}
|
||||
|
||||
.cargatextodialog p, .cargatextodialog b, .cargatextodialog a{
|
||||
font-size:18pt;
|
||||
|
||||
|
||||
font-size:18pt;
|
||||
}
|
||||
*/
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="alert_messages_na">
|
||||
|
||||
<div class='modalheade'>
|
||||
<span class='modalheadertex'>
|
||||
<?php echo __("You don't have access to this page"); ?>
|
||||
</span>
|
||||
<img class='modalclose cerrar' src='<?php echo $config['homeurl']; ?>images/icono_cerrar.png'>
|
||||
|
||||
<div id="alert_messages_na">
|
||||
|
||||
<div class='modalheade'>
|
||||
<img class='modalclose cerrar' src='<?php echo $config['homeurl']; ?>images/input_cross.png'>
|
||||
</div>
|
||||
|
||||
<div class='modalconten'>
|
||||
<div class='modalheadertex'>
|
||||
<?php echo __("You don't have access to this page"); ?>
|
||||
</div>
|
||||
|
||||
<div class='modalcontenttex'>
|
||||
<?php
|
||||
echo __('Access to this page is restricted to authorized users only, please contact system administrator if you need assistance.');
|
||||
echo '<br/> <br/>';
|
||||
echo __('Please know that all attempts to access this page are recorded in security logs of %s System Database', get_product_name());
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='modalokbutto cerrar'>
|
||||
<span class='modalokbuttontex'>OK</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='modalconten'>
|
||||
<img class='modalcontentim' src='<?php echo $config['homeurl']; ?>images/access_denied.png'>
|
||||
<div class='modalcontenttex'>
|
||||
<?php
|
||||
echo __('Access to this page is restricted to authorized users only, please contact system administrator if you need assistance.');
|
||||
echo '<br/> <br/>';
|
||||
echo __('Please know that all attempts to access this page are recorded in security logs of %s System Database', get_product_name());
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class='modalokbutto cerrar'>
|
||||
<span class='modalokbuttontex'>OK</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="opacida" style="position:fixed;background:black;opacity:0.6;z-index:-1;left:0px;top:0px;width:100%;height:100%;"></div>
|
||||
|
||||
<div id="opacidad"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<script>
|
||||
|
||||
$(".cerrar").click(function(){
|
||||
window.location=".";
|
||||
});
|
||||
$(".cerrar").click(function(){
|
||||
window.location=".";
|
||||
});
|
||||
|
||||
$('div#page').css('background-color','#d3d3d3');
|
||||
|
||||
</script>
|
|
@ -183,10 +183,10 @@ if (empty($result)) {
|
|||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->size = [];
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
|
@ -246,7 +246,18 @@ foreach ($result as $row) {
|
|||
}
|
||||
}
|
||||
|
||||
foreach ($table->rowclass as $key => $value) {
|
||||
if (strpos($value, 'limit_scroll') !== false) {
|
||||
$table->colspan[$key] = [7];
|
||||
} else {
|
||||
if ($enterprise_include !== ENTERPRISE_NOT_HOOK) {
|
||||
$table->cellclass[$key][6] = 'action_buttons';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
ui_pagination($count, $url, 0, 0, false, 'offset', true, 'pagination-bottom');
|
||||
|
||||
if ($enterprise_include !== ENTERPRISE_NOT_HOOK) {
|
||||
enterprise_hook('enterpriseAuditFooter');
|
||||
|
|
|
@ -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'];
|
||||
|
@ -224,7 +225,7 @@ if ($result === false) {
|
|||
$table->width = '100%';
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->head = [];
|
||||
$table->data = [];
|
||||
$table->align = [];
|
||||
|
@ -252,9 +253,9 @@ foreach ($result as $row) {
|
|||
|
||||
$data[2] = mb_substr($row['descripcion'], 0, 60);
|
||||
|
||||
$data[3] = '<a href="index.php?sec=gagente&tab=module&sec2=godmode/agentes/configurar_agente&tab=template&id_agente='.$id_agente.'&delete_module='.$row['id_agente_modulo'].'">'.html_print_image('images/cross.png', true, ['border' => '0', 'alt' => __('Delete'), 'onclick' => "if (!confirm('".__('Are you sure?')."')) return false;"]).'</a> ';
|
||||
|
||||
$data[3] .= ' <a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'&tab=module&edit_module=1&id_agent_module='.$row['id_agente_modulo'].'">'.html_print_image('images/config.png', true, ['border' => '0', 'alt' => __('Update')]).'</a>';
|
||||
$table->cellclass[][3] = 'action_buttons';
|
||||
$data[3] = '<a href="index.php?sec=gagente&tab=module&sec2=godmode/agentes/configurar_agente&tab=template&id_agente='.$id_agente.'&delete_module='.$row['id_agente_modulo'].'">'.html_print_image('images/cross.png', true, ['border' => '0', 'alt' => __('Delete'), 'onclick' => "if (!confirm('".__('Are you sure?')."')) return false;"]).'</a>';
|
||||
$data[3] .= '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'&tab=module&edit_module=1&id_agent_module='.$row['id_agente_modulo'].'">'.html_print_image('images/config.png', true, ['border' => '0', 'alt' => __('Update')]).'</a>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
// 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.
|
||||
// Load global vars
|
||||
// Load global vars.
|
||||
global $config;
|
||||
|
||||
enterprise_include('godmode/agentes/configurar_agente.php');
|
||||
|
@ -23,10 +23,10 @@ ui_require_javascript_file('encode_decode_base64');
|
|||
|
||||
check_login();
|
||||
|
||||
// Get tab parameter to check ACL in each tabs
|
||||
// Get tab parameter to check ACL in each tabs.
|
||||
$tab = get_parameter('tab', 'main');
|
||||
|
||||
// See if id_agente is set (either POST or GET, otherwise -1
|
||||
// See if id_agente is set (either POST or GET, otherwise -1.
|
||||
$id_agente = (int) get_parameter('id_agente');
|
||||
$group = 0;
|
||||
$all_groups = [$group];
|
||||
|
@ -46,6 +46,7 @@ if (!check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
|||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -63,11 +64,11 @@ require_once 'include/functions_modules.php';
|
|||
require_once 'include/functions_alerts.php';
|
||||
require_once 'include/functions_reporting.php';
|
||||
|
||||
// Get passed variables
|
||||
// Get passed variables.
|
||||
$alerttype = get_parameter('alerttype');
|
||||
$id_agent_module = (int) get_parameter('id_agent_module');
|
||||
|
||||
// Init vars
|
||||
// Init vars.
|
||||
$descripcion = '';
|
||||
$comentarios = '';
|
||||
$campo_1 = '';
|
||||
|
@ -137,7 +138,7 @@ $alert_priority = 0;
|
|||
$server_name = '';
|
||||
$grupo = 0;
|
||||
$id_os = 9;
|
||||
// Windows
|
||||
// Windows.
|
||||
$custom_id = '';
|
||||
$cascade_protection = 0;
|
||||
$cascade_protection_modules = 0;
|
||||
|
@ -156,23 +157,23 @@ $cps = 0;
|
|||
$create_agent = (bool) get_parameter('create_agent');
|
||||
$module_macros = [];
|
||||
|
||||
// Create agent
|
||||
// Create agent.
|
||||
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);
|
||||
|
||||
// safe_output only validate ip
|
||||
// Safe_output only validate ip.
|
||||
$direccion_agente = trim(io_safe_output($direccion_agente));
|
||||
|
||||
if (!validate_address($direccion_agente)) {
|
||||
$mssg_warning = 1;
|
||||
}
|
||||
|
||||
// safe-input before validate ip
|
||||
// Safe-input before validate ip.
|
||||
$direccion_agente = io_safe_input($direccion_agente);
|
||||
|
||||
$nombre_agente = hash('sha256', $alias.'|'.$direccion_agente.'|'.time().'|'.sprintf('%04d', rand(0, 10000)));
|
||||
|
@ -208,7 +209,7 @@ if ($create_agent) {
|
|||
$field_values[$field['id_field']] = (string) get_parameter_post('customvalue_'.$field['id_field'], '');
|
||||
}
|
||||
|
||||
// Check if agent exists (BUG WC-50518-2)
|
||||
// Check if agent exists (BUG WC-50518-2).
|
||||
if ($alias == '') {
|
||||
$agent_creation_error = __('No agent alias specified');
|
||||
$agent_created_ok = 0;
|
||||
|
@ -256,7 +257,7 @@ if ($create_agent) {
|
|||
}
|
||||
|
||||
if ($id_agente !== false) {
|
||||
// Create custom fields for this agent
|
||||
// Create custom fields for this agent.
|
||||
foreach ($field_values as $key => $value) {
|
||||
$update_custom = db_process_sql_insert(
|
||||
'tagent_custom_data',
|
||||
|
@ -268,7 +269,7 @@ if ($create_agent) {
|
|||
);
|
||||
}
|
||||
|
||||
// Create address for this agent in taddress
|
||||
// Create address for this agent in taddress.
|
||||
if ($direccion_agente != '') {
|
||||
agents_add_address($id_agente, $direccion_agente);
|
||||
}
|
||||
|
@ -311,7 +312,7 @@ if ($create_agent) {
|
|||
"Quiet":"'.(int) $quiet.'",
|
||||
"Cps":"'.(int) $cps.'"}';
|
||||
|
||||
// Create the secondary groups
|
||||
// Create the secondary groups.
|
||||
enterprise_hook(
|
||||
'agents_update_secondary_groups',
|
||||
[
|
||||
|
@ -341,14 +342,14 @@ if ($create_agent) {
|
|||
}
|
||||
}
|
||||
|
||||
// Show tabs
|
||||
// Show tabs.
|
||||
$img_style = [
|
||||
'class' => 'top',
|
||||
'width' => 16,
|
||||
];
|
||||
|
||||
if ($id_agente) {
|
||||
// View tab
|
||||
// View tab.
|
||||
$viewtab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'">'.html_print_image('images/operation.png', true, ['title' => __('View')]).'</a>';
|
||||
|
||||
if ($tab == 'view') {
|
||||
|
@ -359,7 +360,7 @@ if ($id_agente) {
|
|||
|
||||
$viewtab['operation'] = 1;
|
||||
|
||||
// Main tab
|
||||
// Main tab.
|
||||
$maintab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&id_agente='.$id_agente.'">'.html_print_image('images/gm_setup.png', true, ['title' => __('Setup')]).'</a>';
|
||||
if ($tab == 'main') {
|
||||
$maintab['active'] = true;
|
||||
|
@ -367,7 +368,7 @@ if ($id_agente) {
|
|||
$maintab['active'] = false;
|
||||
}
|
||||
|
||||
// Module tab
|
||||
// Module tab.
|
||||
$moduletab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$id_agente.'">'.html_print_image('images/gm_modules.png', true, ['title' => __('Modules')]).'</a>';
|
||||
|
||||
if ($tab == 'module') {
|
||||
|
@ -376,7 +377,7 @@ if ($id_agente) {
|
|||
$moduletab['active'] = false;
|
||||
}
|
||||
|
||||
// Alert tab
|
||||
// Alert tab.
|
||||
$alerttab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$id_agente.'">'.html_print_image('images/gm_alerts.png', true, ['title' => __('Alerts')]).'</a>';
|
||||
|
||||
if ($tab == 'alert') {
|
||||
|
@ -385,7 +386,7 @@ if ($id_agente) {
|
|||
$alerttab['active'] = false;
|
||||
}
|
||||
|
||||
// Template tab
|
||||
// Template tab.
|
||||
$templatetab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=template&id_agente='.$id_agente.'">'.html_print_image('images/templates.png', true, ['title' => __('Module templates')]).'</a>';
|
||||
|
||||
if ($tab == 'template') {
|
||||
|
@ -395,7 +396,7 @@ if ($id_agente) {
|
|||
}
|
||||
|
||||
|
||||
// Inventory
|
||||
// Inventory.
|
||||
$inventorytab = enterprise_hook('inventory_tab');
|
||||
|
||||
if ($inventorytab == -1) {
|
||||
|
@ -412,7 +413,7 @@ if ($id_agente) {
|
|||
}
|
||||
|
||||
if ($has_remote_conf === true) {
|
||||
// Plugins
|
||||
// Plugins.
|
||||
$pluginstab = enterprise_hook('plugins_tab');
|
||||
if ($pluginstab == -1) {
|
||||
$pluginstab = '';
|
||||
|
@ -421,21 +422,21 @@ if ($id_agente) {
|
|||
$pluginstab = '';
|
||||
}
|
||||
|
||||
// Collection
|
||||
// Collection.
|
||||
$collectiontab = enterprise_hook('collection_tab');
|
||||
|
||||
if ($collectiontab == -1) {
|
||||
$collectiontab = '';
|
||||
}
|
||||
|
||||
// Group tab
|
||||
// Group tab.
|
||||
$grouptab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&ag_group='.$group.'">'.html_print_image('images/group.png', true, [ 'title' => __('Group')]).'</a>';
|
||||
|
||||
$grouptab['active'] = false;
|
||||
|
||||
$gistab = [];
|
||||
|
||||
// GIS tab
|
||||
// GIS tab.
|
||||
if ($config['activate_gis']) {
|
||||
$gistab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=gis&id_agente='.$id_agente.'">'.html_print_image('images/gm_gis.png', true, [ 'title' => __('GIS data')]).'</a>';
|
||||
|
||||
|
@ -446,10 +447,10 @@ if ($id_agente) {
|
|||
}
|
||||
}
|
||||
|
||||
// Agent wizard tab
|
||||
// Agent wizard tab.
|
||||
$agent_wizard['text'] = '<a href="javascript:" class="agent_wizard_tab">'.html_print_image('images/wand_agent.png', true, [ 'title' => __('Agent wizard')]).'</a>';
|
||||
|
||||
// Hidden subtab layer
|
||||
// Hidden subtab layer.
|
||||
$agent_wizard['sub_menu'] = '<ul class="mn subsubmenu" style="display:none; float:none;">';
|
||||
$agent_wizard['sub_menu'] .= '<li class="nomn tab_godmode" style="text-align: center;">';
|
||||
$agent_wizard['sub_menu'] .= '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=snmp_explorer&id_agente='.$id_agente.'">'.html_print_image('images/wand_snmp.png', true, [ 'title' => __('SNMP Wizard')]).'</a>';
|
||||
|
@ -471,7 +472,7 @@ if ($id_agente) {
|
|||
|
||||
$total_incidents = agents_get_count_incidents($id_agente);
|
||||
|
||||
// Incident tab
|
||||
// Incident tab.
|
||||
if ($total_incidents > 0) {
|
||||
$incidenttab['text'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=incident&id_agente='.$id_agente.'">'.html_print_image('images/book_edit.png', true, ['title' => __('Incidents')]).'</a>';
|
||||
|
||||
|
@ -532,7 +533,7 @@ if ($id_agente) {
|
|||
];
|
||||
}
|
||||
|
||||
// Only if the agent has incidents associated show incidents tab
|
||||
// Only if the agent has incidents associated show incidents tab.
|
||||
if ($total_incidents) {
|
||||
$onheader['incident'] = $incidenttab;
|
||||
}
|
||||
|
@ -545,7 +546,7 @@ if ($id_agente) {
|
|||
];
|
||||
}
|
||||
|
||||
// Extensions tabs
|
||||
// Extensions tabs.
|
||||
foreach ($config['extensions'] as $extension) {
|
||||
if (isset($extension['extension_god_tab'])) {
|
||||
if (check_acl($config['id_user'], $group, $extension['extension_god_tab']['acl'])) {
|
||||
|
@ -574,7 +575,7 @@ if ($id_agente) {
|
|||
}
|
||||
|
||||
$help_header = '';
|
||||
// This add information to the header
|
||||
// This add information to the header.
|
||||
switch ($tab) {
|
||||
case 'main':
|
||||
$tab_description = '- '.__('Setup');
|
||||
|
@ -639,6 +640,10 @@ if ($id_agente) {
|
|||
case 'wmi_explorer':
|
||||
$tab_description = '- '.__('WMI Wizard');
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -649,10 +654,15 @@ if ($id_agente) {
|
|||
$tab_description = '- '.__('SNMP explorer');
|
||||
$help_header = 'snmp_explorer';
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -668,7 +678,7 @@ if ($id_agente) {
|
|||
$config['item_title_size_text']
|
||||
);
|
||||
} else {
|
||||
// Create agent
|
||||
// Create agent.
|
||||
ui_print_page_header(
|
||||
__('Agent manager'),
|
||||
'images/bricks.png',
|
||||
|
@ -682,12 +692,12 @@ $delete_conf_file = (bool) get_parameter('delete_conf_file');
|
|||
|
||||
if ($delete_conf_file) {
|
||||
$correct = false;
|
||||
// Delete remote configuration
|
||||
// Delete remote configuration.
|
||||
if (isset($config['remote_config'])) {
|
||||
$agent_md5 = md5(io_safe_output(agents_get_name($id_agente, 'none')), false);
|
||||
|
||||
if (file_exists($config['remote_config'].'/md5/'.$agent_md5.'.md5')) {
|
||||
// Agent remote configuration editor
|
||||
// Agent remote configuration editor.
|
||||
$file_name = $config['remote_config'].'/conf/'.$agent_md5.'.conf';
|
||||
$correct = @unlink($file_name);
|
||||
|
||||
|
@ -703,7 +713,7 @@ if ($delete_conf_file) {
|
|||
);
|
||||
}
|
||||
|
||||
// Show agent creation results
|
||||
// Show agent creation results.
|
||||
if ($create_agent) {
|
||||
if (!isset($agent_creation_error)) {
|
||||
$agent_creation_error = __('Could not be created');
|
||||
|
@ -720,17 +730,17 @@ if ($create_agent) {
|
|||
}
|
||||
}
|
||||
|
||||
// Fix / Normalize module data
|
||||
// Fix / Normalize module data.
|
||||
if (isset($_GET['fix_module'])) {
|
||||
$id_module = get_parameter_get('fix_module', 0);
|
||||
// get info about this module
|
||||
// Get info about this module.
|
||||
$media = reporting_get_agentmodule_data_average($id_module, 30758400);
|
||||
// Get average over the year
|
||||
// Get average over the year.
|
||||
$media *= 1.3;
|
||||
$error = '';
|
||||
$result = true;
|
||||
|
||||
// If the value of media is 0 or something went wrong, don't delete
|
||||
// If the value of media is 0 or something went wrong, don't delete.
|
||||
if (!empty($media)) {
|
||||
$where = [
|
||||
'datos' => '>'.$media,
|
||||
|
@ -759,25 +769,25 @@ if (isset($_GET['fix_module'])) {
|
|||
|
||||
$update_agent = (bool) get_parameter('update_agent');
|
||||
|
||||
// Update AGENT
|
||||
// Update AGENT.
|
||||
if ($update_agent) {
|
||||
// if modified some agent paramenter
|
||||
// If modified some agent paramenter.
|
||||
$mssg_warning = 0;
|
||||
$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);
|
||||
// safe_output only validate ip
|
||||
// Safe_output only validate ip.
|
||||
$direccion_agente = trim(io_safe_output($direccion_agente));
|
||||
|
||||
if (!validate_address($direccion_agente)) {
|
||||
$mssg_warning = 1;
|
||||
}
|
||||
|
||||
// safe-input before validate ip
|
||||
// Safe-input before validate ip.
|
||||
$direccion_agente = io_safe_input($direccion_agente);
|
||||
|
||||
$address_list = (string) get_parameter_post('address_list', '');
|
||||
|
@ -786,10 +796,13 @@ if ($update_agent) {
|
|||
&& $direccion_agente == agents_get_address($id_agente)
|
||||
&& $address_list != agents_get_address($id_agente)
|
||||
) {
|
||||
// If we selected another IP in the drop down list to be 'primary':
|
||||
// a) field is not the same as selectbox
|
||||
// b) field has not changed from current IP
|
||||
// c) selectbox is not the current IP
|
||||
/*
|
||||
* If we selected another IP in the drop down list to be 'primary':
|
||||
* a) field is not the same as selectbox
|
||||
* b) field has not changed from current IP
|
||||
* c) selectbox is not the current IP.
|
||||
*/
|
||||
|
||||
if (!empty($address_list)) {
|
||||
$direccion_agente = $address_list;
|
||||
}
|
||||
|
@ -799,7 +812,7 @@ if ($update_agent) {
|
|||
$intervalo = (int) get_parameter_post('intervalo', SECONDS_5MINUTES);
|
||||
$comentarios = str_replace('`', '‘', (string) get_parameter_post('comentarios', ''));
|
||||
$modo = (int) get_parameter_post('modo', 0);
|
||||
// Mode: Learning, Normal or Autodisabled
|
||||
// Mode: Learning, Normal or Autodisabled.
|
||||
$id_os = (int) get_parameter_post('id_os');
|
||||
$disabled = (bool) get_parameter_post('disabled');
|
||||
$server_name = (string) get_parameter_post('server_name', '');
|
||||
|
@ -837,7 +850,7 @@ if ($update_agent) {
|
|||
);
|
||||
|
||||
if ($old_value === false) {
|
||||
// Create custom field if not exist
|
||||
// Create custom field if not exist.
|
||||
$update_custom = db_process_sql_insert(
|
||||
'tagent_custom_data',
|
||||
[
|
||||
|
@ -866,10 +879,10 @@ if ($update_agent) {
|
|||
ui_print_warning_message(__('The ip or dns name entered cannot be resolved'));
|
||||
}
|
||||
|
||||
// Verify if there is another agent with the same name but different ID
|
||||
// Verify if there is another agent with the same name but different ID.
|
||||
if ($alias == '') {
|
||||
ui_print_error_message(__('No agent alias specified'));
|
||||
// If there is an agent with the same name, but a different ID
|
||||
// If there is an agent with the same name, but a different ID.
|
||||
}
|
||||
|
||||
if ($unique_ip && $direccion_agente != '') {
|
||||
|
@ -882,7 +895,7 @@ if ($update_agent) {
|
|||
} else if ($exists_ip) {
|
||||
ui_print_error_message(__('Duplicate main IP address'));
|
||||
} else {
|
||||
// If different IP is specified than previous, add the IP
|
||||
// If different IP is specified than previous, add the IP.
|
||||
if ($direccion_agente != ''
|
||||
&& $direccion_agente != agents_get_address($id_agente)
|
||||
) {
|
||||
|
@ -890,7 +903,7 @@ if ($update_agent) {
|
|||
}
|
||||
|
||||
$action_delete_ip = (bool) get_parameter('delete_ip', false);
|
||||
// If IP is set for deletion, delete first
|
||||
// If IP is set for deletion, delete first.
|
||||
if ($action_delete_ip) {
|
||||
$delete_ip = get_parameter_post('address_list');
|
||||
|
||||
|
@ -939,11 +952,11 @@ if ($update_agent) {
|
|||
__('There was a problem updating the agent')
|
||||
);
|
||||
} else {
|
||||
// Update the agent from the metaconsole cache
|
||||
// Update the agent from the metaconsole cache.
|
||||
enterprise_include_once('include/functions_agents.php');
|
||||
enterprise_hook('agent_update_from_cache', [$id_agente, $values, $server_name]);
|
||||
|
||||
// Update the configuration files
|
||||
// Update the configuration files.
|
||||
if ($old_values['intervalo'] != $intervalo) {
|
||||
enterprise_hook(
|
||||
'config_agents_update_config_token',
|
||||
|
@ -1057,9 +1070,9 @@ if ($update_agent) {
|
|||
}
|
||||
|
||||
// Read agent data
|
||||
// This should be at the end of all operation checks, to read the changes - $id_agente doesn't have to be retrieved
|
||||
// This should be at the end of all operation checks, to read the changes - $id_agente doesn't have to be retrieved.
|
||||
if ($id_agente) {
|
||||
// This has been done in the beginning of the page, but if an agent was created, this id might change
|
||||
// This has been done in the beginning of the page, but if an agent was created, this id might change.
|
||||
$id_grupo = agents_get_agent_group($id_agente);
|
||||
if (!check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') && !check_acl_one_of_groups($config['id_user'], $all_groups, 'AD')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to admin an agent without access');
|
||||
|
@ -1067,15 +1080,15 @@ if ($id_agente) {
|
|||
exit;
|
||||
}
|
||||
|
||||
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
||||
$agent = db_get_row('tagente', 'id_agente', $id_agente, false, false);
|
||||
if (empty($agent)) {
|
||||
// Close out the page
|
||||
// Close out the page.
|
||||
ui_print_error_message(__('There was a problem loading the agent'));
|
||||
return;
|
||||
}
|
||||
|
||||
$intervalo = $agent['intervalo'];
|
||||
// Define interval in seconds
|
||||
// Define interval in seconds.
|
||||
$nombre_agente = $agent['nombre'];
|
||||
if (empty($alias)) {
|
||||
$alias = $agent['alias'];
|
||||
|
@ -1111,11 +1124,11 @@ $create_module = (bool) get_parameter('create_module');
|
|||
$delete_module = (bool) get_parameter('delete_module');
|
||||
$enable_module = (int) get_parameter('enable_module');
|
||||
$disable_module = (int) get_parameter('disable_module');
|
||||
// It is the id_agent_module to duplicate
|
||||
// It is the id_agent_module to duplicate.
|
||||
$duplicate_module = (int) get_parameter('duplicate_module');
|
||||
$edit_module = (bool) get_parameter('edit_module');
|
||||
|
||||
// GET DATA for MODULE UPDATE OR MODULE INSERT
|
||||
// GET DATA for MODULE UPDATE OR MODULE INSERT.
|
||||
if ($update_module || $create_module) {
|
||||
$id_grupo = agents_get_agent_group($id_agente);
|
||||
$all_groups = agents_get_all_groups_agent($id_agente, $id_grupo);
|
||||
|
@ -1136,9 +1149,12 @@ if ($update_module || $create_module) {
|
|||
$id_module_group = (int) get_parameter('id_module_group');
|
||||
$flag = (bool) get_parameter('flag');
|
||||
|
||||
// Don't read as (float) because it lost it's decimals when put into MySQL
|
||||
// where are very big and PHP uses scientific notation, p.e:
|
||||
// 1.23E-10 is 0.000000000123
|
||||
/*
|
||||
* Don't read as (float) because it lost it's decimals when put into MySQL
|
||||
* where are very big and PHP uses scientific notation, p.e:
|
||||
* 1.23E-10 is 0.000000000123.
|
||||
*/
|
||||
|
||||
$post_process = (string) get_parameter('post_process', 0.0);
|
||||
if (get_parameter('prediction_module')) {
|
||||
$prediction_module = 1;
|
||||
|
@ -1160,7 +1176,7 @@ if ($update_module || $create_module) {
|
|||
$tcp_send = (string) get_parameter('tcp_send');
|
||||
$tcp_rcv = (string) get_parameter('tcp_rcv');
|
||||
$tcp_port = (int) get_parameter('tcp_port');
|
||||
// Correction in order to not insert 0 as port
|
||||
// Correction in order to not insert 0 as port.
|
||||
$is_port_empty = get_parameter('tcp_port', '');
|
||||
if ($is_port_empty === '') {
|
||||
$tcp_port = null;
|
||||
|
@ -1186,7 +1202,7 @@ if ($update_module || $create_module) {
|
|||
}
|
||||
|
||||
if ($id_module_type == 25) {
|
||||
// web analysis, from MODULE_WUX
|
||||
// web analysis, from MODULE_WUX.
|
||||
$custom_string_1 = base64_encode((string) get_parameter('custom_string_1', $custom_string_1_default));
|
||||
$custom_integer_1 = (int) get_parameter('custom_integer_1', $custom_integer_1_default);
|
||||
} else {
|
||||
|
@ -1198,7 +1214,7 @@ if ($update_module || $create_module) {
|
|||
$custom_string_3 = (string) get_parameter('custom_string_3', $custom_string_3_default);
|
||||
$custom_integer_2 = (int) get_parameter('custom_integer_2', 0);
|
||||
|
||||
// Get macros
|
||||
// Get macros.
|
||||
$macros = (string) get_parameter('macros');
|
||||
|
||||
if (!empty($macros)) {
|
||||
|
@ -1225,7 +1241,8 @@ if ($update_module || $create_module) {
|
|||
if (preg_match('/^module_name\s*(.*)/', $line, $match)) {
|
||||
$new_configuration_data .= 'module_name '.io_safe_output($name)."\n";
|
||||
}
|
||||
// We delete from conf all the module macros starting with _field
|
||||
|
||||
// We delete from conf all the module macros starting with _field.
|
||||
else if (!preg_match('/^module_macro_field.*/', $line, $match)) {
|
||||
$new_configuration_data .= "$line\n";
|
||||
}
|
||||
|
@ -1243,14 +1260,6 @@ if ($update_module || $create_module) {
|
|||
$new_configuration_data = str_replace('module_end', $macros_for_data.'module_end', $new_configuration_data);
|
||||
}
|
||||
|
||||
/*
|
||||
$macros_for_data = enterprise_hook('config_agents_get_macros_data_conf', array($_POST));
|
||||
|
||||
if ($macros_for_data !== ENTERPRISE_NOT_HOOK && $macros_for_data != '') {
|
||||
// Add macros to configuration file
|
||||
$new_configuration_data = str_replace('module_end', $macros_for_data."module_end", $new_configuration_data);
|
||||
}
|
||||
*/
|
||||
$configuration_data = str_replace(
|
||||
'\\',
|
||||
'\',
|
||||
|
@ -1269,16 +1278,16 @@ if ($update_module || $create_module) {
|
|||
|
||||
$snmp_community = (string) get_parameter('snmp_community');
|
||||
$snmp_oid = (string) get_parameter('snmp_oid');
|
||||
// Change double quotes by single
|
||||
// Change double quotes by single.
|
||||
$snmp_oid = preg_replace('/"/', ''', $snmp_oid);
|
||||
|
||||
if (empty($snmp_oid)) {
|
||||
// The user did not set any OID manually but did a SNMP walk
|
||||
// The user did not set any OID manually but did a SNMP walk.
|
||||
$snmp_oid = (string) get_parameter('select_snmp_oid');
|
||||
}
|
||||
|
||||
if ($id_module_type >= 15 && $id_module_type <= 18) {
|
||||
// New support for snmp v3
|
||||
// New support for snmp v3.
|
||||
$tcp_send = (string) get_parameter('snmp_version');
|
||||
$plugin_user = (string) get_parameter('snmp3_auth_user');
|
||||
$plugin_pass = io_input_password((string) get_parameter('snmp3_auth_pass'));
|
||||
|
@ -1320,6 +1329,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');
|
||||
|
@ -1409,15 +1419,25 @@ if ($update_module || $create_module) {
|
|||
$module_macro_values = (array) get_parameter('module_macro_values', []);
|
||||
$module_macros = modules_get_module_macros_json($module_macro_names, $module_macro_values);
|
||||
|
||||
// Make changes in the conf file if necessary
|
||||
// Make changes in the conf file if necessary.
|
||||
enterprise_include_once('include/functions_config_agents.php');
|
||||
|
||||
$module_in_policy = enterprise_hook('policies_is_module_in_policy', [$id_agent_module]);
|
||||
$module_linked = enterprise_hook('policies_is_module_linked', [$id_agent_module]);
|
||||
|
||||
if ((!$module_in_policy && !$module_linked )
|
||||
|| ( $module_in_policy && !$module_linked )
|
||||
if ((!$module_in_policy && !$module_linked && $update_module)
|
||||
|| ( $module_in_policy && !$module_linked && $update_module)
|
||||
) {
|
||||
enterprise_hook(
|
||||
'config_agents_update_module_in_conf',
|
||||
[
|
||||
$id_agente,
|
||||
io_safe_output($old_configuration_data),
|
||||
io_safe_output($configuration_data),
|
||||
$disabled,
|
||||
]
|
||||
);
|
||||
} else {
|
||||
enterprise_hook(
|
||||
'config_agents_write_module_in_conf',
|
||||
[
|
||||
|
@ -1430,7 +1450,7 @@ if ($update_module || $create_module) {
|
|||
}
|
||||
}
|
||||
|
||||
// MODULE UPDATE
|
||||
// MODULE UPDATE.
|
||||
if ($update_module) {
|
||||
$id_agent_module = (int) get_parameter('id_agent_module');
|
||||
|
||||
|
@ -1482,6 +1502,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),
|
||||
|
@ -1515,7 +1536,7 @@ if ($update_module) {
|
|||
}
|
||||
}
|
||||
|
||||
// In local modules, the interval is updated by agent
|
||||
// In local modules, the interval is updated by agent.
|
||||
$module_kind = (int) get_parameter('moduletype');
|
||||
if ($module_kind == MODULE_DATA) {
|
||||
unset($values['module_interval']);
|
||||
|
@ -1584,7 +1605,7 @@ if ($update_module) {
|
|||
);
|
||||
}
|
||||
|
||||
// Update the module interval
|
||||
// Update the module interval.
|
||||
cron_update_module_interval($id_agent_module, $cron_interval);
|
||||
|
||||
ui_print_success_message(__('Module successfully updated'));
|
||||
|
@ -1603,8 +1624,7 @@ if ($update_module) {
|
|||
}
|
||||
}
|
||||
|
||||
// MODULE INSERT
|
||||
// =================
|
||||
// MODULE INSERT.
|
||||
if ($create_module) {
|
||||
if (isset($_POST['combo_snmp_oid'])) {
|
||||
$combo_snmp_oid = get_parameter_post('combo_snmp_oid');
|
||||
|
@ -1628,6 +1648,10 @@ if ($create_module) {
|
|||
$description = ' ';
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$values = [
|
||||
|
@ -1677,6 +1701,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),
|
||||
|
@ -1752,7 +1777,7 @@ if ($create_module) {
|
|||
enterprise_hook('modules_create_synthetic_operations', [$id_agent_module, $serialize_ops]);
|
||||
}
|
||||
|
||||
// Update the module interval
|
||||
// Update the module interval.
|
||||
cron_update_module_interval($id_agent_module, $cron_interval);
|
||||
|
||||
ui_print_success_message(__('Module added successfully'));
|
||||
|
@ -1773,7 +1798,7 @@ if ($create_module) {
|
|||
}
|
||||
|
||||
// MODULE DELETION
|
||||
// =================
|
||||
// =================.
|
||||
if ($delete_module) {
|
||||
// DELETE agent module !
|
||||
$id_borrar_modulo = (int) get_parameter_get('delete_module', 0);
|
||||
|
@ -1809,7 +1834,7 @@ if ($delete_module) {
|
|||
enterprise_include_once('include/functions_config_agents.php');
|
||||
enterprise_hook('config_agents_delete_module_in_conf', [modules_get_agentmodule_agent($id_borrar_modulo), modules_get_agentmodule_name($id_borrar_modulo)]);
|
||||
|
||||
// Init transaction
|
||||
// Init transaction.
|
||||
$error = 0;
|
||||
|
||||
// First delete from tagente_modulo -> if not successful, increment
|
||||
|
@ -1828,7 +1853,7 @@ if ($delete_module) {
|
|||
if ($result === false) {
|
||||
$error++;
|
||||
} else {
|
||||
// Set flag to update module status count
|
||||
// Set flag to update module status count.
|
||||
db_process_sql(
|
||||
'UPDATE tagente
|
||||
SET update_module_count = 1, update_alert_count = 1
|
||||
|
@ -1870,7 +1895,7 @@ if ($delete_module) {
|
|||
}
|
||||
|
||||
// Trick to detect if we are deleting a synthetic module (avg or arithmetic)
|
||||
// If result is empty then module doesn't have this type of submodules
|
||||
// If result is empty then module doesn't have this type of submodules.
|
||||
$ops_json = enterprise_hook('modules_get_synthetic_operations', [$id_borrar_modulo]);
|
||||
$result_ops_synthetic = json_decode($ops_json);
|
||||
if (!empty($result_ops_synthetic)) {
|
||||
|
@ -1878,18 +1903,17 @@ if ($delete_module) {
|
|||
if ($result === false) {
|
||||
$error++;
|
||||
}
|
||||
} //end if
|
||||
else {
|
||||
} else {
|
||||
$result_components = enterprise_hook('modules_get_synthetic_components', [$id_borrar_modulo]);
|
||||
$count_components = 1;
|
||||
if (!empty($result_components)) {
|
||||
// Get number of components pending to delete to know when it's needed to update orders
|
||||
// Get number of components pending to delete to know when it's needed to update orders.
|
||||
$num_components = count($result_components);
|
||||
$last_target_module = 0;
|
||||
foreach ($result_components as $id_target_module) {
|
||||
// Detects change of component or last component to update orders
|
||||
// Detects change of component or last component to update orders.
|
||||
if (($count_components == $num_components)
|
||||
or ($last_target_module != $id_target_module)
|
||||
|| ($last_target_module != $id_target_module)
|
||||
) {
|
||||
$update_orders = true;
|
||||
} else {
|
||||
|
@ -1908,7 +1932,7 @@ if ($delete_module) {
|
|||
}
|
||||
}
|
||||
|
||||
// Check for errors
|
||||
// Check for errors.
|
||||
if ($error != 0) {
|
||||
ui_print_error_message(__('There was a problem deleting the module'));
|
||||
} else {
|
||||
|
@ -1926,7 +1950,7 @@ if ($delete_module) {
|
|||
}
|
||||
|
||||
// MODULE DUPLICATION
|
||||
// ==================
|
||||
// ==================.
|
||||
if (!empty($duplicate_module)) {
|
||||
// DUPLICATE agent module !
|
||||
$id_duplicate_module = $duplicate_module;
|
||||
|
@ -1973,7 +1997,7 @@ if (!empty($duplicate_module)) {
|
|||
}
|
||||
|
||||
// MODULE ENABLE/DISABLE
|
||||
// =====================
|
||||
// =====================.
|
||||
if ($enable_module) {
|
||||
$result = modules_change_disabled($enable_module, 0);
|
||||
$modulo_nombre = db_get_row_sql('SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = '.$enable_module.'');
|
||||
|
@ -2013,7 +2037,7 @@ if ($disable_module) {
|
|||
}
|
||||
|
||||
// UPDATE GIS
|
||||
// ==========
|
||||
// ==========.
|
||||
$updateGIS = get_parameter('update_gis', 0);
|
||||
if ($updateGIS) {
|
||||
$updateGisData = get_parameter('update_gis_data');
|
||||
|
@ -2101,9 +2125,8 @@ switch ($tab) {
|
|||
break;
|
||||
|
||||
case 'alert':
|
||||
/*
|
||||
Because $id_agente is set, it will show only agent alerts */
|
||||
// This var is for not display create button on alert list
|
||||
// Because $id_agente is set, it will show only agent alerts.
|
||||
// This var is for not display create button on alert list.
|
||||
$dont_display_alert_create_bttn = true;
|
||||
include 'godmode/alerts/alert_list.php';
|
||||
break;
|
||||
|
@ -2152,7 +2175,7 @@ switch ($tab) {
|
|||
default:
|
||||
if (enterprise_hook('switch_agent_tab', [$tab])) {
|
||||
// This will make sure that blank pages will have at least some
|
||||
// debug info in them - do not translate debug
|
||||
// debug info in them - do not translate debug.
|
||||
ui_print_error_message(__('Invalid tab specified'));
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -97,11 +97,22 @@ if ($delete_field) {
|
|||
}
|
||||
}
|
||||
|
||||
$fields = db_get_all_fields_in_table('tagent_custom_fields');
|
||||
// Prepare pagination.
|
||||
$offset = (int) get_parameter('offset');
|
||||
$limit = $config['block_size'];
|
||||
$count_fields = db_get_value('count(*)', 'tagent_custom_fields');
|
||||
|
||||
$fields = db_get_all_rows_filter(
|
||||
'tagent_custom_fields',
|
||||
[
|
||||
'limit' => $limit,
|
||||
'offset' => $offset,
|
||||
]
|
||||
);
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
if ($fields) {
|
||||
$table->head = [];
|
||||
$table->head[0] = __('ID');
|
||||
|
@ -135,14 +146,17 @@ foreach ($fields as $field) {
|
|||
$data[2] = html_print_image('images/icono_stop.png', true, ['style' => 'width:21px;height:21px;']);
|
||||
}
|
||||
|
||||
$table->cellclass[][3] = 'action_buttons';
|
||||
$data[3] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configure_field&id_field='.$field['id_field'].'">'.html_print_image('images/config.png', true, ['alt' => __('Edit'), 'title' => __('Edit'), 'border' => '0']).'</a>';
|
||||
$data[3] .= ' <a href="index.php?sec=gagente&sec2=godmode/agentes/fields_manager&delete_field=1&id_field='.$field['id_field'].'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true, ['alt' => __('Delete'), 'title' => __('Delete'), 'border' => '0']).'</a>';
|
||||
$data[3] .= '<a href="index.php?sec=gagente&sec2=godmode/agentes/fields_manager&delete_field=1&id_field='.$field['id_field'].'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true, ['alt' => __('Delete'), 'title' => __('Delete'), 'border' => '0']).'</a>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
||||
if ($fields) {
|
||||
ui_pagination($count_fields, false, $offset);
|
||||
html_print_table($table);
|
||||
ui_pagination($count_fields, false, $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
}
|
||||
|
||||
echo '<form method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configure_field">';
|
||||
|
|
|
@ -224,13 +224,13 @@ switch ($config['dbtype']) {
|
|||
break;
|
||||
}
|
||||
|
||||
$selected = 'border: 1px solid black;';
|
||||
$selectNameUp = '';
|
||||
$selectNameDown = '';
|
||||
$selectOsUp = '';
|
||||
$selectOsDown = '';
|
||||
$selectGroupUp = '';
|
||||
$selectGroupDown = '';
|
||||
$selected = true;
|
||||
$selectNameUp = false;
|
||||
$selectNameDown = false;
|
||||
$selectOsUp = false;
|
||||
$selectOsDown = false;
|
||||
$selectGroupUp = false;
|
||||
$selectGroupDown = false;
|
||||
switch ($sortField) {
|
||||
case 'remote':
|
||||
switch ($sort) {
|
||||
|
@ -441,18 +441,27 @@ if (($config['dbtype'] == 'oracle') && ($agents !== false)) {
|
|||
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&recursion=$recursion&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset);
|
||||
|
||||
if ($agents !== false) {
|
||||
echo "<table cellpadding='4' id='agent_list' cellspacing='4' width='100%' class='databox data'>";
|
||||
echo '<th>'.__('Agent name').' '.'<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=up&disabled=$disabled">'.html_print_image('images/sort_up.png', true, ['style' => $selectNameUp]).'</a>'.'<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=down&disabled=$disabled">'.html_print_image('images/sort_down.png', true, ['style' => $selectNameDown]).'</a>';
|
||||
echo '</th>';
|
||||
echo "<th title='".__('Remote agent configuration')."'>".__('R').' '.'<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=remote&sort=up&disabled=$disabled">'.html_print_image('images/sort_up.png', true, ['style' => $selectRemoteUp]).'</a>'.'<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=remote&sort=down&disabled=$disabled">'.html_print_image('images/sort_down.png', true, ['style' => $selectRemoteDown]).'</a>';
|
||||
echo '</th>';
|
||||
echo '<th>'.__('OS').' '.'<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=os&sort=up&disabled=$disabled">'.html_print_image('images/sort_up.png', true, ['style' => $selectOsUp]).'</a>'.'<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=os&sort=down&disabled=$disabled">'.html_print_image('images/sort_down.png', true, ['style' => $selectOsDown]).'</a>';
|
||||
echo '</th>';
|
||||
// Urls to sort the table.
|
||||
$url_up_agente = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=up&disabled=$disabled';
|
||||
$url_down_agente = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=down&disabled=$disabled';
|
||||
$url_up_remote = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=remote&sort=up&disabled=$disabled';
|
||||
$url_down_remote = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=remote&sort=down&disabled=$disabled';
|
||||
$url_up_os = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=os&sort=up&disabled=$disabled';
|
||||
$url_down_os = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=os&sort=down&disabled=$disabled';
|
||||
$url_up_group = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=group&sort=up&disabled=$disabled';
|
||||
$url_down_group = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=group&sort=down&disabled=$disabled';
|
||||
|
||||
|
||||
echo "<table cellpadding='0' id='agent_list' cellspacing='0' width='100%' class='info_table'>";
|
||||
echo '<thead><tr>';
|
||||
echo '<th>'.__('Agent name').ui_get_sorting_arrows($url_up_agente, $url_down_agente, $selectNameUp, $selectNameDown).'</th>';
|
||||
echo "<th title='".__('Remote agent configuration')."'>".__('R').ui_get_sorting_arrows($url_up_remote, $url_down_remote, $selectRemoteUp, $selectRemoteDown).'</th>';
|
||||
echo '<th>'.__('OS').ui_get_sorting_arrows($url_up_os, $url_down_os, $selectOsUp, $selectOsDown).'</th>';
|
||||
echo '<th>'.__('Type').'</th>';
|
||||
echo '<th>'.__('Group').' '.'<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=group&sort=up&disabled=$disabled">'.html_print_image('images/sort_up.png', true, ['style' => $selectGroupUp]).'</a>'.'<a href="index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=group&sort=down&disabled=$disabled">'.html_print_image('images/sort_down.png', true, ['style' => $selectGroupDown]).'</a>';
|
||||
echo '</th>';
|
||||
echo '<th>'.__('Group').ui_get_sorting_arrows($url_up_group, $url_down_group, $selectGroupUp, $selectGroupDown).'</th>';
|
||||
echo '<th>'.__('Description').'</th>';
|
||||
echo "<th style='text-align:left'>".__('Actions').'</th>';
|
||||
echo '</tr></thead>';
|
||||
$color = 1;
|
||||
|
||||
$rowPair = true;
|
||||
|
@ -628,7 +637,7 @@ if ($agents !== false) {
|
|||
$offsetArg = $offset;
|
||||
}
|
||||
|
||||
echo "<td class='$tdcolor' align='left' style='width:7%' valign='middle'>";
|
||||
echo "<td class='$tdcolor action_buttons' align='left' style='width:7%' valign='middle'>";
|
||||
|
||||
if ($agent['disabled']) {
|
||||
echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&
|
||||
|
@ -654,7 +663,7 @@ if ($agents !== false) {
|
|||
}
|
||||
|
||||
if ($check_aw) {
|
||||
echo " <a href='index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&
|
||||
echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&
|
||||
borrar_agente=".$agent['id_agente']."&group_id=$ag_group&recursion=$recursion&search=$search&offset=$offsetArg&sort_field=$sortField&sort=$sort&disabled=$disabled'";
|
||||
|
||||
if ($agent['id_os'] != 100) {
|
||||
|
@ -670,7 +679,7 @@ if ($agents !== false) {
|
|||
}
|
||||
|
||||
echo '</table>';
|
||||
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset);
|
||||
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
echo "<table width='100%'><tr><td align='right'>";
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no defined agents') ]);
|
||||
|
|
|
@ -358,17 +358,17 @@ if ($multiple_delete) {
|
|||
// TABLE LIST MODULES
|
||||
// ==================
|
||||
$url = 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$id_agente;
|
||||
$selectNameUp = '';
|
||||
$selectNameDown = '';
|
||||
$selectServerUp = '';
|
||||
$selectServerDown = '';
|
||||
$selectTypeUp = '';
|
||||
$selectTypeDown = '';
|
||||
$selectIntervalUp = '';
|
||||
$selectIntervalDown = '';
|
||||
$selectNameUp = false;
|
||||
$selectNameDown = false;
|
||||
$selectServerUp = false;
|
||||
$selectServerDown = false;
|
||||
$selectTypeUp = false;
|
||||
$selectTypeDown = false;
|
||||
$selectIntervalUp = false;
|
||||
$selectIntervalDown = false;
|
||||
$sortField = get_parameter('sort_field');
|
||||
$sort = get_parameter('sort', 'none');
|
||||
$selected = '';
|
||||
$selected = true;
|
||||
|
||||
$order[] = [
|
||||
'field' => 'tmodule_group.name',
|
||||
|
@ -482,13 +482,13 @@ switch ($sortField) {
|
|||
|
||||
default:
|
||||
$selectNameUp = $selected;
|
||||
$selectNameDown = '';
|
||||
$selectServerUp = '';
|
||||
$selectServerDown = '';
|
||||
$selectTypeUp = '';
|
||||
$selectTypeDown = '';
|
||||
$selectIntervalUp = '';
|
||||
$selectIntervalDown = '';
|
||||
$selectNameDown = false;
|
||||
$selectServerUp = false;
|
||||
$selectServerDown = false;
|
||||
$selectTypeUp = false;
|
||||
$selectTypeDown = false;
|
||||
$selectIntervalUp = false;
|
||||
$selectIntervalDown = false;
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
case 'postgresql':
|
||||
|
@ -626,32 +626,39 @@ if ($paginate_module) {
|
|||
ui_pagination($total_modules, $url);
|
||||
}
|
||||
|
||||
$url_name = $url.'&sort_field=name&sort=';
|
||||
$url_server = $url.'&sort_field=server&sort=';
|
||||
$url_type = $url.'&sort_field=type&sort=';
|
||||
$url_interval = $url.'&sort_field=interval&sort=';
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->head = [];
|
||||
$table->head[0] = __('Name').' '.'<a href="'.$url.'&sort_field=name&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectNameUp]).'</a>'.'<a href="'.$url.'&sort_field=name&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectNameDown]).'</a>';
|
||||
$table->head['checkbox'] = html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[0] = __('Name').ui_get_sorting_arrows($url_name.'up', $url_name.'down', $selectNameUp, $selectNameDown);
|
||||
|
||||
// The access to the policy is granted only with AW permission
|
||||
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK && check_acl($config['id_user'], $agent['id_grupo'], 'AW')) {
|
||||
$table->head[1] = "<span title='".__('Policy')."'>".__('P.').'</span>';
|
||||
}
|
||||
|
||||
$table->head[2] = "<span title='".__('Server')."'>".__('S.').'</span>'.' '.'<a href="'.$url.'&sort_field=server&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectServerUp]).'</a>'.'<a href="'.$url.'&sort_field=server&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectServerDown]).'</a>';
|
||||
$table->head[3] = __('Type').' '.'<a href="'.$url.'&sort_field=type&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectTypeUp]).'</a>'.'<a href="'.$url.'&sort_field=type&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectTypeDown]).'</a>';
|
||||
$table->head[4] = __('Interval').' '.'<a href="'.$url.'&sort_field=interval&sort=up">'.html_print_image('images/sort_up.png', true, ['style' => $selectIntervalUp]).'</a>'.'<a href="'.$url.'&sort_field=interval&sort=down">'.html_print_image('images/sort_down.png', true, ['style' => $selectIntervalDown]).'</a>';
|
||||
$table->head[2] = "<span title='".__('Server')."'>".__('S.').'</span>'.ui_get_sorting_arrows($url_server.'up', $url_server.'down', $selectServerUp, $selectServerDown);
|
||||
$table->head[3] = __('Type').ui_get_sorting_arrows($url_type.'up', $url_type.'down', $selectTypeUp, $selectTypeDown);
|
||||
$table->head[4] = __('Interval').ui_get_sorting_arrows($url_interval.'up', $url_interval.'down', $selectIntervalUp, $selectIntervalDown);
|
||||
$table->head[5] = __('Description');
|
||||
$table->head[6] = __('Status');
|
||||
$table->head[7] = __('Warn');
|
||||
|
||||
|
||||
$table->head[8] = __('Action');
|
||||
$table->head[9] = '<span title="'.__('Delete').'">'.__('Del.').'</span>'.html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[9] = '<span title="'.__('Delete').'">'.__('Del.').'</span>';
|
||||
|
||||
$table->rowstyle = [];
|
||||
$table->style = [];
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->size = [];
|
||||
$table->size['checkbox'] = '20px';
|
||||
$table->size[2] = '70px';
|
||||
$table->align = [];
|
||||
$table->align[2] = 'left';
|
||||
|
@ -706,15 +713,19 @@ foreach ($modules as $module) {
|
|||
$table->rowstyle[($i - 1)] = 'text-align: center';
|
||||
$table->rowclass[($i - 1)] = 'datos3';
|
||||
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) {
|
||||
$table->colspan[($i - 1)][0] = 10;
|
||||
$table->colspan[($i - 1)][0] = 11;
|
||||
} else {
|
||||
$table->colspan[($i - 1)][0] = 9;
|
||||
$table->colspan[($i - 1)][0] = 10;
|
||||
}
|
||||
|
||||
$data = [];
|
||||
}
|
||||
}
|
||||
|
||||
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
||||
$data['checkbox'] = html_print_checkbox('id_delete[]', $module['id_agente_modulo'], false, true);
|
||||
}
|
||||
|
||||
$data[0] = '';
|
||||
|
||||
if (isset($module['deep']) && ($module['deep'] != 0)) {
|
||||
|
@ -858,7 +869,7 @@ foreach ($modules as $module) {
|
|||
}
|
||||
|
||||
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') && $module['id_tipo_modulo'] != 25) {
|
||||
$data[8] .= ' <a href="index.php?sec=gagente&tab=module&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'&duplicate_module='.$module['id_agente_modulo'].'"
|
||||
$data[8] .= '<a href="index.php?sec=gagente&tab=module&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'&duplicate_module='.$module['id_agente_modulo'].'"
|
||||
onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">';
|
||||
$data[8] .= html_print_image(
|
||||
'images/copy.png',
|
||||
|
@ -870,7 +881,7 @@ foreach ($modules as $module) {
|
|||
// Make a data normalization
|
||||
if (isset($numericModules[$type])) {
|
||||
if ($numericModules[$type] === true) {
|
||||
$data[8] .= ' <a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'&tab=module&fix_module='.$module['id_agente_modulo'].'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">';
|
||||
$data[8] .= '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'&tab=module&fix_module='.$module['id_agente_modulo'].'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">';
|
||||
$data[8] .= html_print_image(
|
||||
'images/chart_curve.png',
|
||||
true,
|
||||
|
@ -879,18 +890,19 @@ foreach ($modules as $module) {
|
|||
$data[8] .= '</a>';
|
||||
}
|
||||
} else {
|
||||
$data[8] .= ' '.html_print_image(
|
||||
$data[8] .= html_print_image(
|
||||
'images/chart_curve.disabled.png',
|
||||
true,
|
||||
['title' => __('Normalize (Disabled)')]
|
||||
);
|
||||
$data[8] .= ' ';
|
||||
}
|
||||
|
||||
// create network component action
|
||||
if ((is_user_admin($config['id_user']))
|
||||
&& ($module['id_modulo'] == MODULE_NETWORK)
|
||||
) {
|
||||
$data[8] .= ' <a href="index.php?sec=gmodules&sec2=godmode/modules/manage_network_components&create_network_from_module=1&id_agente='.$id_agente.'&create_module_from='.$module['id_agente_modulo'].'"
|
||||
$data[8] .= '<a href="index.php?sec=gmodules&sec2=godmode/modules/manage_network_components&create_network_from_module=1&id_agente='.$id_agente.'&create_module_from='.$module['id_agente_modulo'].'"
|
||||
onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">';
|
||||
$data[8] .= html_print_image(
|
||||
'images/network.png',
|
||||
|
@ -899,11 +911,12 @@ foreach ($modules as $module) {
|
|||
);
|
||||
$data[8] .= '</a> ';
|
||||
} else {
|
||||
$data[8] .= ' '.html_print_image(
|
||||
$data[8] .= html_print_image(
|
||||
'images/network.disabled.png',
|
||||
true,
|
||||
['title' => __('Create network component (Disabled)')]
|
||||
);
|
||||
$data[8] .= ' ';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -917,10 +930,17 @@ foreach ($modules as $module) {
|
|||
['title' => __('Delete')]
|
||||
);
|
||||
$data[9] .= '</a> ';
|
||||
$data[9] .= html_print_checkbox('id_delete[]', $module['id_agente_modulo'], false, true);
|
||||
}
|
||||
|
||||
$table->cellclass[] = [
|
||||
8 => 'action_buttons',
|
||||
9 => 'action_buttons',
|
||||
];
|
||||
array_push($table->data, $data);
|
||||
$table->cellclass[] = [
|
||||
8 => 'action_buttons',
|
||||
9 => 'action_buttons',
|
||||
];
|
||||
}
|
||||
|
||||
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
||||
|
|
|
@ -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%';
|
||||
|
|
|
@ -393,7 +393,7 @@ else {
|
|||
|
||||
// View available downtimes present in database (if any of them)
|
||||
$table = new StdClass();
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->width = '100%';
|
||||
$table->cellstyle = [];
|
||||
|
||||
|
@ -518,9 +518,9 @@ else {
|
|||
}
|
||||
|
||||
html_print_table($table);
|
||||
ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
||||
echo '<br>';
|
||||
// CSV export button
|
||||
echo '<div style="display: inline;">';
|
||||
html_print_button(
|
||||
|
|
|
@ -221,7 +221,7 @@ if ($delete_action) {
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
$table->head[0] = __('Name');
|
||||
|
@ -281,6 +281,10 @@ foreach ($actions as $action) {
|
|||
}
|
||||
|
||||
if (check_acl($config['id_user'], $action['id_group'], 'LM')) {
|
||||
$table->cellclass[] = [
|
||||
2 => 'action_buttons',
|
||||
3 => 'action_buttons',
|
||||
];
|
||||
$data[2] = '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_actions&copy_action=1&id='.$action['id'].'&pure='.$pure.'"
|
||||
onClick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/copy.png', true).'</a>';
|
||||
$data[3] = '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_actions&delete_action=1&id='.$action['id'].'&pure='.$pure.'"
|
||||
|
|
|
@ -388,7 +388,7 @@ if ($copy_command) {
|
|||
}
|
||||
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
|
@ -431,6 +431,7 @@ foreach ($commands as $command) {
|
|||
io_safe_output($command['description'])
|
||||
);
|
||||
$data['action'] = '';
|
||||
$table->cellclass[]['action'] = 'action_buttons';
|
||||
if (! $command['internal']) {
|
||||
$data['action'] = '<span style="display: inline-flex">';
|
||||
$data['action'] .= '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_commands&copy_command=1&id='.$command['id'].'&pure='.$pure.'"
|
||||
|
|
|
@ -226,17 +226,18 @@ $order = null;
|
|||
|
||||
$sortField = get_parameter('sort_field');
|
||||
$sort = get_parameter('sort', 'none');
|
||||
$selected = 'border: 1px solid black;';
|
||||
$selected = true;
|
||||
// 'border: 1px solid black;';
|
||||
$selectDisabledUp = '';
|
||||
$selectDisabledDown = '';
|
||||
$selectStandbyUp = '';
|
||||
$selectStandbyDown = '';
|
||||
$selectAgentUp = '';
|
||||
$selectAgentDown = '';
|
||||
$selectModuleUp = '';
|
||||
$selectModuleDown = '';
|
||||
$selectTemplateUp = '';
|
||||
$selectTemplateDown = '';
|
||||
$selectAgentUp = false;
|
||||
$selectAgentDown = false;
|
||||
$selectModuleUp = false;
|
||||
$selectModuleDown = false;
|
||||
$selectTemplateUp = false;
|
||||
$selectTemplateDown = false;
|
||||
|
||||
switch ($sortField) {
|
||||
case 'disabled':
|
||||
|
@ -346,11 +347,11 @@ switch ($sortField) {
|
|||
$selectStandbyUp = '';
|
||||
$selectStandbyDown = '';
|
||||
$selectAgentUp = $selected;
|
||||
$selectAgentDown = '';
|
||||
$selectModuleUp = '';
|
||||
$selectModuleDown = '';
|
||||
$selectTemplateUp = '';
|
||||
$selectTemplateDown = '';
|
||||
$selectAgentDown = false;
|
||||
$selectModuleUp = false;
|
||||
$selectModuleDown = false;
|
||||
$selectTemplateUp = false;
|
||||
$selectTemplateDown = false;
|
||||
$order = [
|
||||
'field' => 'agent_name',
|
||||
'order' => 'ASC',
|
||||
|
@ -360,12 +361,12 @@ switch ($sortField) {
|
|||
$selectDisabledDown = '';
|
||||
$selectStandbyUp = '';
|
||||
$selectStandbyDown = '';
|
||||
$selectAgentUp = '';
|
||||
$selectAgentDown = '';
|
||||
$selectAgentUp = false;
|
||||
$selectAgentDown = false;
|
||||
$selectModuleUp = $selected;
|
||||
$selectModuleDown = '';
|
||||
$selectTemplateUp = '';
|
||||
$selectTemplateDown = '';
|
||||
$selectModuleDown = false;
|
||||
$selectTemplateUp = false;
|
||||
$selectTemplateDown = false;
|
||||
$order = [
|
||||
'field' => 'agent_module_name',
|
||||
'order' => 'ASC',
|
||||
|
@ -402,12 +403,21 @@ if (!$id_agente) {
|
|||
$url = 'index.php?sec='.$sec.'&sec2=godmode/agentes/configurar_agente&pure='.$pure.'&tab=alert&id_agente='.$id_agente.'&offset='.$offset.$form_params;
|
||||
}
|
||||
|
||||
// Urls to sort the table.
|
||||
$url_up_agente = $url.'&sort_field=agent&sort=up&pure='.$pure;
|
||||
$url_down_agente = $url.'&sort_field=agent&sort=down&pure='.$pure;
|
||||
$url_up_module = $url.'&sort_field=module&sort=up&pure='.$pure;
|
||||
$url_down_module = $url.'&sort_field=module&sort=down&pure='.$pure;
|
||||
$url_up_template = $url.'&sort_field=template&sort=up&pure='.$pure;
|
||||
$url_down_template = $url.'&sort_field=template&sort=down&pure='.$pure;
|
||||
|
||||
|
||||
$table = new stdClass();
|
||||
|
||||
if (is_metaconsole()) {
|
||||
$table->class = 'alert_list databox';
|
||||
} else {
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
}
|
||||
|
||||
$table->width = '100%';
|
||||
|
@ -427,7 +437,7 @@ $table->head = [];
|
|||
if (! $id_agente) {
|
||||
$table->style = [];
|
||||
$table->style[0] = 'font-weight: bold;';
|
||||
$table->head[0] = __('Agent').' '.'<a href="'.$url.'&sort_field=agent&sort=up&pure='.$pure.'">'.html_print_image('images/sort_up.png', true, ['style' => $selectAgentUp]).'</a>'.'<a href="'.$url.'&sort_field=agent&sort=down&pure='.$pure.'">'.html_print_image('images/sort_down.png', true, ['style' => $selectAgentDown]).'</a>';
|
||||
$table->head[0] = __('Agent').ui_get_sorting_arrows($url_up_agente, $url_down_agente, $selectAgentUp, $selectAgentDown);
|
||||
$table->size[0] = '4%';
|
||||
$table->size[1] = '8%';
|
||||
$table->size[2] = '8%';
|
||||
|
@ -439,7 +449,7 @@ if (! $id_agente) {
|
|||
$table->size[4] = '8%';
|
||||
}*/
|
||||
} else {
|
||||
$table->head[0] = __('Module').' '.'<a href="'.$url.'&sort_field=module&sort=up&pure='.$pure.'">'.html_print_image('images/sort_up.png', true, ['style' => $selectModuleUp]).'</a>'.'<a href="'.$url.'&sort_field=module&sort=down&pure='.$pure.'">'.html_print_image('images/sort_down.png', true, ['style' => $selectModuleDown]).'</a>';
|
||||
$table->head[0] = __('Module').ui_get_sorting_arrows($url_up_module, $url_down_module, $selectModuleUp, $selectModuleDown);
|
||||
// Different sizes or the layout screws up
|
||||
$table->size[0] = '0%';
|
||||
$table->size[1] = '10%';
|
||||
|
@ -452,7 +462,7 @@ if (! $id_agente) {
|
|||
$table->size[4] = '1%';
|
||||
}
|
||||
|
||||
$table->head[1] = __('Template').' '.'<a href="'.$url.'&sort_field=template&sort=up&pure='.$pure.'">'.html_print_image('images/sort_up.png', true, ['style' => $selectTemplateUp]).'</a>'.'<a href="'.$url.'&sort_field=template&sort=down&pure='.$pure.'">'.html_print_image('images/sort_down.png', true, ['style' => $selectTemplateDown]).'</a>';
|
||||
$table->head[1] = __('Template').ui_get_sorting_arrows($url_up_template, $url_down_template, $selectTemplateUp, $selectTemplateDown);
|
||||
$table->head[2] = __('Actions');
|
||||
$table->head[3] = __('Status');
|
||||
$table->head[4] = "<span title='".__('Operations')."'>".__('Op.').'</span>';
|
||||
|
@ -728,6 +738,10 @@ foreach ($simple_alerts as $alert) {
|
|||
|
||||
$data[3] = ui_print_status_image($status, $title, true);
|
||||
|
||||
$table->cellclass[] = [
|
||||
3 => 'action_buttons',
|
||||
4 => 'action_buttons',
|
||||
];
|
||||
$data[4] = '<form class="disable_alert_form" action="'.$url.'" method="post" style="display: inline;">';
|
||||
if ($alert['disabled']) {
|
||||
$data[4] .= html_print_input_image('enable', 'images/lightbulb_off.png', 1, 'padding:0px', true);
|
||||
|
@ -742,7 +756,7 @@ foreach ($simple_alerts as $alert) {
|
|||
|
||||
// To manage alert is necessary LW permissions in the agent group
|
||||
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'LW')) {
|
||||
$data[4] .= ' <form class="standby_alert_form" action="'.$url.'" method="post" style="display: inline;">';
|
||||
$data[4] .= '<form class="standby_alert_form" action="'.$url.'" method="post" style="display: inline;">';
|
||||
if (!$alert['standby']) {
|
||||
$data[4] .= html_print_input_image('standby_off', 'images/bell.png', 1, 'padding:0px;', true);
|
||||
$data[4] .= html_print_input_hidden('standbyon_alert', 1, true);
|
||||
|
@ -771,7 +785,7 @@ foreach ($simple_alerts as $alert) {
|
|||
|
||||
// To manage alert is necessary LW permissions in the agent group
|
||||
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'LW')) {
|
||||
$data[4] .= ' <form class="delete_alert_form" action="'.$url.'" method="post" style="display: inline;">';
|
||||
$data[4] .= '<form class="delete_alert_form" action="'.$url.'" method="post" style="display: inline;">';
|
||||
$is_cluster = (bool) get_parameter('id_cluster');
|
||||
if (!$is_cluster) {
|
||||
if ($alert['disabled']) {
|
||||
|
@ -815,6 +829,11 @@ foreach ($simple_alerts as $alert) {
|
|||
|
||||
if (isset($data)) {
|
||||
html_print_table($table);
|
||||
if ($id_agente) {
|
||||
ui_pagination($total, 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$id_agente.$form_params.$sort_params, 0, 0, false, 'offset', true, 'pagination-bottom');
|
||||
} else {
|
||||
ui_pagination($total, 'index.php?sec='.$sec.'&sec2=godmode/alerts/alert_list'.$form_params.$sort_params, 0, 0, false, 'offset', true, 'pagination-bottom');
|
||||
}
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('No alerts defined') ]);
|
||||
}
|
||||
|
|
|
@ -243,7 +243,9 @@ $url = ui_get_url_refresh(
|
|||
'offset' => false,
|
||||
'search_string' => $search_string,
|
||||
'search_type' => $search_type,
|
||||
]
|
||||
],
|
||||
true,
|
||||
false
|
||||
);
|
||||
|
||||
$table = new stdClass();
|
||||
|
@ -339,7 +341,7 @@ if ($templates === false) {
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
$table->head[0] = __('Name');
|
||||
|
@ -375,6 +377,7 @@ foreach ($templates as $template) {
|
|||
$data[3] = alerts_get_alert_templates_type_name($template['type']);
|
||||
|
||||
if (check_acl($config['id_user'], $template['id_group'], 'LM')) {
|
||||
$table->cellclass[][4] = 'action_buttons';
|
||||
$data[4] = '<form method="post" action="index.php?sec='.$sec.'&sec2=godmode/alerts/configure_alert_template&pure='.$pure.'" style="display: inline; float: left">';
|
||||
$data[4] .= html_print_input_hidden('duplicate_template', 1, true);
|
||||
$data[4] .= html_print_input_hidden('source_id', $template['id'], true);
|
||||
|
@ -396,6 +399,7 @@ foreach ($templates as $template) {
|
|||
ui_pagination($total_templates, $url);
|
||||
if (isset($data)) {
|
||||
html_print_table($table);
|
||||
ui_pagination($total_templates, $url, 0, 0, false, 'offset', true, 'pagination-bottom');
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('No alert templates defined') ]);
|
||||
}
|
||||
|
|
|
@ -82,7 +82,13 @@ $filter['limit'] = (int) $config['block_size'];
|
|||
// Search action: This will filter the display category view
|
||||
$result = false;
|
||||
|
||||
$result = categories_get_all_categories();
|
||||
$result = db_get_all_rows_filter(
|
||||
'tcategory',
|
||||
[
|
||||
'limit' => $filter['limit'],
|
||||
'offset' => $filter['offset'],
|
||||
]
|
||||
);
|
||||
|
||||
// Display categories previously filtered or not
|
||||
$rowPair = true;
|
||||
|
@ -94,7 +100,7 @@ if (!empty($result)) {
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
|
@ -123,7 +129,8 @@ if (!empty($result)) {
|
|||
$data[1] .= '<a href="index.php?sec=advanced&sec2=godmode/category/category&delete_category='.$category['id'].'&pure='.(int) $config['pure'].'"onclick="if (! confirm (\''.__('Are you sure?').'\')) return false">'.html_print_image('images/cross.png', true, ['title' => 'Delete']).'</a>';
|
||||
} else {
|
||||
$data[0] = "<a href='index.php?sec=gmodules&sec2=godmode/category/edit_category&action=update&id_category=".$category['id'].'&pure='.(int) $config['pure']."'>".$category['name'].'</a>';
|
||||
$data[1] = "<a href='index.php?sec=gmodules&sec2=godmode/category/edit_category&action=update&id_category=".$category['id'].'&pure='.(int) $config['pure']."'>".html_print_image('images/config.png', true, ['title' => 'Edit']).'</a> ';
|
||||
$table->cellclass[][1] = 'action_buttons';
|
||||
$data[1] = "<a href='index.php?sec=gmodules&sec2=godmode/category/edit_category&action=update&id_category=".$category['id'].'&pure='.(int) $config['pure']."'>".html_print_image('images/config.png', true, ['title' => 'Edit']).'</a>';
|
||||
$data[1] .= '<a href="index.php?sec=gmodules&sec2=godmode/category/category&delete_category='.$category['id'].'&pure='.(int) $config['pure'].'"onclick="if (! confirm (\''.__('Are you sure?').'\')) return false">'.html_print_image('images/cross.png', true, ['title' => 'Delete']).'</a>';
|
||||
}
|
||||
|
||||
|
@ -131,6 +138,7 @@ if (!empty($result)) {
|
|||
}
|
||||
|
||||
html_print_table($table);
|
||||
ui_pagination($total_categories, $url, $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
} else {
|
||||
// No categories available or selected
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('No categories found') ]);
|
||||
|
|
|
@ -113,31 +113,33 @@ if ($filters === false) {
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
|
||||
$table->head = [];
|
||||
$table->head[0] = __('Name');
|
||||
$table->head[1] = __('Group');
|
||||
$table->head[2] = __('Event type');
|
||||
$table->head[3] = __('Event status');
|
||||
$table->head[4] = __('Severity');
|
||||
$table->head[5] = __('Action').html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[0] = html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[1] = __('Name');
|
||||
$table->head[2] = __('Group');
|
||||
$table->head[3] = __('Event type');
|
||||
$table->head[4] = __('Event status');
|
||||
$table->head[5] = __('Severity');
|
||||
$table->head[6] = __('Action');
|
||||
$table->style = [];
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->style[1] = 'font-weight: bold';
|
||||
$table->align = [];
|
||||
$table->align[1] = 'left';
|
||||
$table->align[2] = 'left';
|
||||
$table->align[3] = 'left';
|
||||
|
||||
$table->align[4] = 'left';
|
||||
|
||||
$table->align[5] = 'left';
|
||||
$table->align[6] = 'left';
|
||||
$table->size = [];
|
||||
$table->size[0] = '50%';
|
||||
$table->size[1] = '5px';
|
||||
$table->size[2] = '80px';
|
||||
$table->size[0] = '20px';
|
||||
$table->size[1] = '50%';
|
||||
$table->size[2] = '5px';
|
||||
$table->size[3] = '80px';
|
||||
$table->size[4] = '80px';
|
||||
$table->size[5] = '40px';
|
||||
$table->size[5] = '80px';
|
||||
$table->size[6] = '40px';
|
||||
$table->data = [];
|
||||
|
||||
$total_filters = db_get_all_rows_filter('tevent_filter', false, 'COUNT(*) AS total');
|
||||
|
@ -147,13 +149,14 @@ $total_filters = $total_filters[0]['total'];
|
|||
foreach ($filters as $filter) {
|
||||
$data = [];
|
||||
|
||||
$data[0] = '<a href="index.php?sec=geventos&sec2=godmode/events/events§ion=edit_filter&id='.$filter['id_filter'].'&pure='.$config['pure'].'">'.$filter['id_name'].'</a>';
|
||||
$data[1] = ui_print_group_icon($filter['id_group_filter'], true);
|
||||
$data[2] = events_get_event_types($filter['event_type']);
|
||||
$data[3] = events_get_status($filter['status']);
|
||||
$data[4] = events_get_severity_types($filter['severity']);
|
||||
$data[5] = "<a onclick='if(confirm(\"".__('Are you sure?')."\")) return true; else return false;'
|
||||
href='index.php?sec=geventos&sec2=godmode/events/events§ion=filter&delete=1&id=".$filter['id_filter'].'&offset=0&pure='.$config['pure']."'>".html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>'.html_print_checkbox_extended('delete_multiple[]', $filter['id_filter'], false, false, '', 'class="check_delete"', true);
|
||||
$data[0] = html_print_checkbox_extended('delete_multiple[]', $filter['id_filter'], false, false, '', 'class="check_delete"', true);
|
||||
$data[1] = '<a href="index.php?sec=geventos&sec2=godmode/events/events§ion=edit_filter&id='.$filter['id_filter'].'&pure='.$config['pure'].'">'.$filter['id_name'].'</a>';
|
||||
$data[2] = ui_print_group_icon($filter['id_group_filter'], true);
|
||||
$data[3] = events_get_event_types($filter['event_type']);
|
||||
$data[4] = events_get_status($filter['status']);
|
||||
$data[5] = events_get_severity_types($filter['severity']);
|
||||
$table->cellclass[][6] = 'action_buttons';
|
||||
$data[6] = "<a onclick='if(confirm(\"".__('Are you sure?')."\")) return true; else return false;'href='index.php?sec=geventos&sec2=godmode/events/events§ion=filter&delete=1&id=".$filter['id_filter'].'&offset=0&pure='.$config['pure']."'>".html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
@ -188,8 +191,6 @@ echo '</div>';
|
|||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$("input[name=all_delete]").css("margin-left", "32px");
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
|
|
|
@ -36,7 +36,9 @@ if (empty($event_responses)) {
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
|
||||
$table->size = [];
|
||||
$table->size[0] = '200px';
|
||||
|
@ -57,8 +59,9 @@ foreach ($event_responses as $response) {
|
|||
$data[0] = '<a href="index.php?sec=geventos&sec2=godmode/events/events§ion=responses&mode=editor&id_response='.$response['id'].'&pure='.$config['pure'].'">'.$response['name'].'</a>';
|
||||
$data[1] = $response['description'];
|
||||
$data[2] = ui_print_group_icon($response['id_group'], true);
|
||||
$table->cellclass[][3] = 'action_buttons';
|
||||
$data[3] = '<a href="index.php?sec=geventos&sec2=godmode/events/events§ion=responses&action=delete_response&id_response='.$response['id'].'&pure='.$config['pure'].'">'.html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>';
|
||||
$data[3] .= ' <a href="index.php?sec=geventos&sec2=godmode/events/events§ion=responses&mode=editor&id_response='.$response['id'].'&pure='.$config['pure'].'">'.html_print_image('images/pencil.png', true, ['title' => __('Edit')]).'</a>';
|
||||
$data[3] .= '<a href="index.php?sec=geventos&sec2=godmode/events/events§ion=responses&mode=editor&id_response='.$response['id'].'&pure='.$config['pure'].'">'.html_print_image('images/pencil.png', true, ['title' => __('Edit')]).'</a>';
|
||||
$table->data[] = $data;
|
||||
}
|
||||
|
||||
|
|
|
@ -149,7 +149,7 @@ $table->head[] = __('Operation');
|
|||
$table->width[] = '30%';
|
||||
*/
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
|
||||
$table->align = [];
|
||||
$table->align[] = 'left';
|
||||
|
@ -254,6 +254,7 @@ foreach ($extensions as $file => $extension) {
|
|||
|
||||
// Avoid to delete or disabled update_manager
|
||||
if ($file != 'update_manager.php') {
|
||||
$table->cellclass[][10] = 'action_buttons';
|
||||
if (!$extension['enabled']) {
|
||||
$data[] = '<a title="'.__('Delete').'" href="index.php?sec=godmode/extensions&sec2=godmode/extensions&enterprise='.(int) $extension['enterprise'].'&delete='.$file.'" class="mn">'.html_print_image('images/cross.disabled.png', true).'</a>'.' <a title="'.__('Enable').'" href="index.php?sec=godmode/extensions&sec2=godmode/extensions&enterprise='.(int) $extension['enterprise'].'&enabled='.$file.'" class="mn">'.html_print_image('images/lightbulb_off.png', true).'</a>';
|
||||
} else {
|
||||
|
|
|
@ -515,7 +515,7 @@ if ($tab == 'tree') {
|
|||
|
||||
$table = new StdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->head = [];
|
||||
$table->head[0] = __('ID');
|
||||
$table->head[1] = __('Name');
|
||||
|
@ -559,6 +559,7 @@ if ($tab == 'tree') {
|
|||
$table->data[$key][3] = $group['disabled'] ? __('Disabled') : __('Enabled');
|
||||
$table->data[$key][4] = $group['parent_name'];
|
||||
$table->data[$key][5] = $group['description'];
|
||||
$table->cellclass[$key][6] = 'action_buttons';
|
||||
$table->data[$key][6] = "<a href='$url'>".html_print_image(
|
||||
'images/config.png',
|
||||
true,
|
||||
|
@ -574,7 +575,7 @@ if ($tab == 'tree') {
|
|||
$confirm_message = __('The child groups will be updated to use the parent id of the deleted group').'. '.$confirm_message;
|
||||
}
|
||||
|
||||
$table->data[$key][6] .= ' '.'<a href="'.$url_delete.'" onClick="if (!confirm(\' '.$confirm_message.'\')) return false;">'.html_print_image(
|
||||
$table->data[$key][6] .= '<a href="'.$url_delete.'" onClick="if (!confirm(\' '.$confirm_message.'\')) return false;">'.html_print_image(
|
||||
'images/cross.png',
|
||||
true,
|
||||
[
|
||||
|
@ -592,7 +593,7 @@ if ($tab == 'tree') {
|
|||
$block_size,
|
||||
true,
|
||||
'offset',
|
||||
false
|
||||
true
|
||||
);
|
||||
html_print_table($table);
|
||||
echo ui_pagination(
|
||||
|
@ -602,7 +603,8 @@ if ($tab == 'tree') {
|
|||
$block_size,
|
||||
true,
|
||||
'offset',
|
||||
true
|
||||
true,
|
||||
'pagination-bottom'
|
||||
);
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no defined groups') ]);
|
||||
|
|
|
@ -212,14 +212,11 @@ if ($delete_group) {
|
|||
}
|
||||
}
|
||||
|
||||
// Prepare pagination.
|
||||
$total_groups = db_get_num_rows('SELECT * FROM tmodule_group');
|
||||
|
||||
$url = ui_get_url_refresh(['offset' => false]);
|
||||
|
||||
$offset = (int) get_parameter('offset', 0);
|
||||
|
||||
ui_pagination($total_groups, $url, $offset);
|
||||
|
||||
|
||||
$sql = 'SELECT *
|
||||
FROM tmodule_group
|
||||
|
@ -230,7 +227,7 @@ $groups = db_get_all_rows_sql($sql);
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
|
||||
if (!empty($groups)) {
|
||||
$table->head = [];
|
||||
|
@ -251,13 +248,16 @@ if (!empty($groups)) {
|
|||
if (is_metaconsole()) {
|
||||
$data[2] = '<a href="index.php?sec=advanced&sec2=advanced/component_management&tab=module_group&id_group='.$id_group['id_mg'].'&delete_group=1" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true, ['border' => '0']).'</a>';
|
||||
} else {
|
||||
$table->cellclass[][2] = 'action_buttons';
|
||||
$data[2] = '<a href="index.php?sec=gmodules&sec2=godmode/groups/modu_group_list&id_group='.$id_group['id_mg'].'&delete_group=1" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true, ['border' => '0']).'</a>';
|
||||
}
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
||||
ui_pagination($total_groups, $url, $offset);
|
||||
html_print_table($table);
|
||||
ui_pagination($total_groups, $url, $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
} else {
|
||||
ui_print_info_message(
|
||||
[
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -219,17 +219,19 @@ $groups = component_groups_get_groups_tree_recursive($groups_clean, 0, 0);
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->head = [];
|
||||
$table->head['checkbox'] = html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[0] = __('Name');
|
||||
$table->head[1] = __('Action').html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[1] = __('Action');
|
||||
$table->style = [];
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->align = [];
|
||||
$table->align[1] = 'left';
|
||||
$table->size = [];
|
||||
$table->size[0] = '80%';
|
||||
$table->size[1] = '10%';
|
||||
$table->size['checkbox'] = '20px';
|
||||
// $table->size[0] = '80%';
|
||||
$table->size[1] = '60px';
|
||||
$table->data = [];
|
||||
|
||||
$total_groups = db_get_all_rows_filter('tnetwork_component_group', false, 'COUNT(*) AS total');
|
||||
|
@ -239,6 +241,9 @@ $total_groups = $total_groups[0]['total'];
|
|||
foreach ($groups as $group) {
|
||||
$data = [];
|
||||
|
||||
$data['checkbox'] = html_print_checkbox_extended('delete_multiple[]', $group['id_sg'], false, false, '', 'class="check_delete"', true);
|
||||
|
||||
|
||||
$tabulation = str_repeat(' ', $group['deep']);
|
||||
if (defined('METACONSOLE')) {
|
||||
$data[0] = $tabulation.'<a href="index.php?sec=advanced&sec2=godmode/modules/manage_nc_groups&id='.$group['id_sg'].'">'.$group['name'].'</a>';
|
||||
|
@ -246,8 +251,9 @@ foreach ($groups as $group) {
|
|||
$data[0] = $tabulation.'<a href="index.php?sec=gmodules&sec2=godmode/modules/manage_nc_groups&id='.$group['id_sg'].'">'.$group['name'].'</a>';
|
||||
}
|
||||
|
||||
$table->cellclass[][1] = 'action_buttons';
|
||||
$data[1] = "<a onclick='if(confirm(\"".__('Are you sure?')."\")) return true; else return false;'
|
||||
href='index.php?sec=".$sec.'&sec2=godmode/modules/manage_nc_groups&delete=1&id='.$group['id_sg']."&offset=0'>".html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>'.html_print_checkbox_extended('delete_multiple[]', $group['id_sg'], false, false, '', 'class="check_delete"', true);
|
||||
href='index.php?sec=".$sec.'&sec2=godmode/modules/manage_nc_groups&delete=1&id='.$group['id_sg']."&offset=0'>".html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
]
|
||||
);
|
||||
|
||||
|
@ -634,14 +638,16 @@ unset($table);
|
|||
|
||||
$table->width = '100%';
|
||||
$table->head = [];
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
$table->head['checkbox'] = html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[0] = __('Module name');
|
||||
$table->head[1] = __('Type');
|
||||
$table->head[3] = __('Description');
|
||||
$table->head[4] = __('Group');
|
||||
$table->head[5] = __('Max/Min');
|
||||
$table->head[6] = __('Action').html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[6] = __('Action');
|
||||
$table->size = [];
|
||||
$table->size['checkbox'] = '20px';
|
||||
$table->size[1] = '75px';
|
||||
$table->size[6] = '80px';
|
||||
$table->align[6] = 'left';
|
||||
|
@ -654,6 +660,8 @@ foreach ($components as $component) {
|
|||
$component['max'] = $component['min'] = __('N/A');
|
||||
}
|
||||
|
||||
$data['checkbox'] = html_print_checkbox_extended('delete_multiple[]', $component['id_nc'], false, false, '', 'class="check_delete"', true);
|
||||
|
||||
$data[0] = '<a href="index.php?sec='.$sec.'&'.'sec2=godmode/modules/manage_network_components&'.'id='.$component['id_nc'].'&pure='.$pure.'">';
|
||||
$data[0] .= io_safe_output($component['name']);
|
||||
$data[0] .= '</a>';
|
||||
|
@ -688,8 +696,9 @@ foreach ($components as $component) {
|
|||
$data[4] = network_components_get_group_name($component['id_group']);
|
||||
$data[5] = $component['max'].' / '.$component['min'];
|
||||
|
||||
$table->cellclass[][6] = 'action_buttons';
|
||||
$data[6] = '<a style="display: inline; float: left" href="'.$url.'&search_id_group='.$search_id_group.'search_string='.$search_string.'&duplicate_network_component=1&source_id='.$component['id_nc'].'">'.html_print_image('images/copy.png', true, ['alt' => __('Duplicate'), 'title' => __('Duplicate')]).'</a>';
|
||||
$data[6] .= '<a href="'.$url.'&delete_component=1&id='.$component['id_nc'].'&search_id_group='.$search_id_group.'search_string='.$search_string.'" onclick="if (! confirm (\''.__('Are you sure?').'\')) return false" >'.html_print_image('images/cross.png', true, ['alt' => __('Delete'), 'title' => __('Delete')]).'</a>'.html_print_checkbox_extended('delete_multiple[]', $component['id_nc'], false, false, '', 'class="check_delete"', true);
|
||||
$data[6] .= '<a href="'.$url.'&delete_component=1&id='.$component['id_nc'].'&search_id_group='.$search_id_group.'search_string='.$search_string.'" onclick="if (! confirm (\''.__('Are you sure?').'\')) return false" >'.html_print_image('images/cross.png', true, ['alt' => __('Delete'), 'title' => __('Delete')]).'</a>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
@ -698,6 +707,7 @@ if (isset($data)) {
|
|||
echo "<form method='post' action='index.php?sec=".$sec.'&sec2=godmode/modules/manage_network_components&search_id_group=0search_string=&pure='.$pure."'>";
|
||||
html_print_input_hidden('multiple_delete', 1);
|
||||
html_print_table($table);
|
||||
ui_pagination($total_components, $url, 0, 0, false, 'offset', true, 'pagination-bottom');
|
||||
echo "<div style='float: right; margin-left: 5px;'>";
|
||||
html_print_submit_button(__('Delete'), 'delete_btn', false, 'class="sub delete"');
|
||||
echo '</div>';
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -189,7 +189,20 @@ if ($export_profile) {
|
|||
exit;
|
||||
}
|
||||
|
||||
$result = db_get_all_rows_in_table('tnetwork_profile', 'name');
|
||||
// Prepare pagination.
|
||||
$offset = (int) get_parameter('offset');
|
||||
$limit = $config['block_size'];
|
||||
$count_network_templates = db_get_value('count(*)', 'tnetwork_profile');
|
||||
|
||||
$result = db_get_all_rows_filter(
|
||||
'tnetwork_profile',
|
||||
[
|
||||
'order' => 'name',
|
||||
'limit' => $limit,
|
||||
'offset' => $offset,
|
||||
]
|
||||
);
|
||||
|
||||
if ($result === false) {
|
||||
$result = [];
|
||||
}
|
||||
|
@ -197,26 +210,31 @@ if ($result === false) {
|
|||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
|
||||
$table->head = [];
|
||||
$table->head[0] = __('Name');
|
||||
$table->head[1] = __('Description');
|
||||
$table->head[2] = '<span style="margin-right:7%;">'.__('Action').'</span>'.html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[0] = html_print_checkbox('all_delete', 0, false, true, false);
|
||||
;
|
||||
$table->head[1] = __('Name');
|
||||
$table->head[2] = __('Description');
|
||||
$table->head[3] = '<span style="margin-right:7%;">'.__('Action').'</span>';
|
||||
$table->size = [];
|
||||
$table->size[1] = '65%';
|
||||
$table->size[2] = '15%';
|
||||
$table->size[0] = '20px';
|
||||
$table->size[2] = '65%';
|
||||
$table->size[3] = '15%';
|
||||
|
||||
$table->align = [];
|
||||
$table->align[2] = 'left';
|
||||
$table->align[3] = 'left';
|
||||
|
||||
$table->data = [];
|
||||
|
||||
foreach ($result as $row) {
|
||||
$data = [];
|
||||
$data[0] = '<a href="index.php?sec=gmodules&sec2=godmode/modules/manage_network_templates_form&id_np='.$row['id_np'].'">'.io_safe_output($row['name']).'</a>';
|
||||
$data[1] = ui_print_truncate_text(io_safe_output($row['description']), 'description', true, true, true, '[…]');
|
||||
$data[2] = html_print_input_image(
|
||||
$data[0] = html_print_checkbox_extended('delete_multiple[]', $row['id_np'], false, false, '', 'class="check_delete"', true);
|
||||
$data[1] = '<a href="index.php?sec=gmodules&sec2=godmode/modules/manage_network_templates_form&id_np='.$row['id_np'].'">'.io_safe_output($row['name']).'</a>';
|
||||
$data[2] = ui_print_truncate_text(io_safe_output($row['description']), 'description', true, true, true, '[…]');
|
||||
$table->cellclass[][3] = 'action_buttons';
|
||||
$data[3] = html_print_input_image(
|
||||
'delete_profile',
|
||||
'images/cross.png',
|
||||
$row['id_np'],
|
||||
|
@ -224,7 +242,7 @@ foreach ($result as $row) {
|
|||
true,
|
||||
['onclick' => 'if (!confirm(\''.__('Are you sure?').'\')) return false;']
|
||||
);
|
||||
$data[2] .= html_print_input_image(
|
||||
$data[3] .= html_print_input_image(
|
||||
'export_profile',
|
||||
'images/csv.png',
|
||||
$row['id_np'],
|
||||
|
@ -232,8 +250,8 @@ foreach ($result as $row) {
|
|||
true,
|
||||
['title' => 'Export to CSV']
|
||||
);
|
||||
$data[2] = '<a href="index.php?sec=gmodules&sec2=godmode/modules/manage_network_templates'.'&delete_profile=1&delete_profile='.$row['id_np'].'" '.'onclick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>';
|
||||
$data[2] .= ' <a href="index.php?sec=gmodules&sec2=godmode/modules/manage_network_templates'.'&export_profile='.$row['id_np'].'">'.html_print_image('images/csv.png', true, ['title' => __('Export to CSV')]).'</a>'.html_print_checkbox_extended('delete_multiple[]', $row['id_np'], false, false, '', 'class="check_delete"', true);
|
||||
$data[3] = '<a href="index.php?sec=gmodules&sec2=godmode/modules/manage_network_templates'.'&delete_profile=1&delete_profile='.$row['id_np'].'" '.'onclick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>';
|
||||
$data[3] .= '<a href="index.php?sec=gmodules&sec2=godmode/modules/manage_network_templates'.'&export_profile='.$row['id_np'].'">'.html_print_image('images/csv.png', true, ['title' => __('Export to CSV')]).'</a>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
@ -241,7 +259,9 @@ foreach ($result as $row) {
|
|||
if (!empty($table->data)) {
|
||||
echo '<form method="post" action="index.php?sec=gmodules&sec2=godmode/modules/manage_network_templates">';
|
||||
html_print_input_hidden('multiple_delete', 1);
|
||||
ui_pagination($count_network_templates, false, $offset);
|
||||
html_print_table($table);
|
||||
ui_pagination($count_network_templates, false, $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
echo "<div style='padding-left: 5px; float: right; '>";
|
||||
html_print_submit_button(__('Delete'), 'delete_btn', false, 'class="sub delete"');
|
||||
echo '</div>';
|
||||
|
|
|
@ -52,11 +52,13 @@ if ($update_module) {
|
|||
}
|
||||
|
||||
|
||||
echo "<table cellpadding='4' cellspacing='4' width='100%' class='databox data'>";
|
||||
echo "<table cellpadding='0' cellspacing='0' width='100%' class='info_table'>";
|
||||
echo '<thead>';
|
||||
echo '<th>'.__('Icon').'</th>';
|
||||
echo '<th>'.__('ID').'</th>';
|
||||
echo '<th>'.__('Name').'</th>';
|
||||
echo '<th>'.__('Description').'</th>';
|
||||
echo '</thead';
|
||||
|
||||
$rows = db_get_all_rows_sql('SELECT * FROM ttipo_modulo ORDER BY nombre');
|
||||
if ($rows === false) {
|
||||
|
|
|
@ -133,20 +133,22 @@ if ($filters === false) {
|
|||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->class = 'info_table';
|
||||
|
||||
$table->head = [];
|
||||
$table->head[0] = __('Name');
|
||||
$table->head[1] = __('Group');
|
||||
$table->head[2] = __('Action').html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[0] = html_print_checkbox('all_delete', 0, false, true, false);
|
||||
$table->head[1] = __('Name');
|
||||
$table->head[2] = __('Group');
|
||||
$table->head[3] = __('Action');
|
||||
$table->style = [];
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->style[1] = 'font-weight: bold';
|
||||
$table->align = [];
|
||||
|
||||
$table->size = [];
|
||||
$table->size[0] = '60%';
|
||||
$table->size[1] = '30%';
|
||||
$table->size[2] = '80px';
|
||||
$table->size[0] = '10px';
|
||||
$table->size[1] = '60%';
|
||||
$table->size[2] = '30%';
|
||||
$table->size[3] = '80px';
|
||||
$table->data = [];
|
||||
|
||||
$total_filters = db_get_all_rows_filter('tnetflow_filter', false, 'COUNT(*) AS total');
|
||||
|
@ -156,10 +158,12 @@ $total_filters = $total_filters[0]['total'];
|
|||
foreach ($filters as $filter) {
|
||||
$data = [];
|
||||
|
||||
$data[0] = '<a href="'.$config['homeurl'].'index.php?sec=netf&sec2=godmode/netflow/nf_edit_form&id='.$filter['id_sg'].'&pure='.$pure.'">'.$filter['id_name'].'</a>';
|
||||
$data[1] = ui_print_group_icon($filter['id_group'], true, 'groups_small', '', !defined('METACONSOLE'));
|
||||
$data[2] = "<a onclick='if(confirm(\"".__('Are you sure?')."\")) return true; else return false;'
|
||||
href='".$config['homeurl'].'index.php?sec=netf&sec2=godmode/netflow/nf_edit&delete=1&id='.$filter['id_sg']."&offset=0&pure=$pure'>".html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>'.html_print_checkbox_extended('delete_multiple[]', $filter['id_sg'], false, false, '', 'class="check_delete"', true);
|
||||
$data[0] = html_print_checkbox_extended('delete_multiple[]', $filter['id_sg'], false, false, '', 'class="check_delete"', true);
|
||||
$data[1] = '<a href="'.$config['homeurl'].'index.php?sec=netf&sec2=godmode/netflow/nf_edit_form&id='.$filter['id_sg'].'&pure='.$pure.'">'.$filter['id_name'].'</a>';
|
||||
$data[2] = ui_print_group_icon($filter['id_group'], true, 'groups_small', '', !defined('METACONSOLE'));
|
||||
$table->cellclass[][3] = 'action_buttons';
|
||||
$data[3] = "<a onclick='if(confirm(\"".__('Are you sure?')."\")) return true; else return false;'
|
||||
href='".$config['homeurl'].'index.php?sec=netf&sec2=godmode/netflow/nf_edit&delete=1&id='.$filter['id_sg']."&offset=0&pure=$pure'>".html_print_image('images/cross.png', true, ['title' => __('Delete')]).'</a>';
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
|
|
@ -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.'">';
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue