Merge remote-tracking branch 'origin/develop' into ent-11114-Gestion-de-versiones-Obsolescencia-planeada

This commit is contained in:
alejandro.campos@artica.es 2023-09-20 15:46:47 +02:00
commit 6f8212ed40
57 changed files with 675 additions and 444 deletions

View File

@ -78,16 +78,16 @@ cd unix && ./pandora_agent_installer --install
} }
install_autodiscover () { # install_autodiscover () {
local arch=$1 # local arch=$1
wget http://firefly.pandorafms.com/projects/autodiscover-linux.zip # wget http://firefly.pandorafms.com/projects/autodiscover-linux.zip
unzip autodiscover-linux.zip # unzip autodiscover-linux.zip
chmod +x $arch/autodiscover # chmod +x $arch/autodiscover
mv -f $arch/autodiscover /etc/pandora/plugins/autodiscover # mv -f $arch/autodiscover /etc/pandora/plugins/autodiscover
} # }
## Main ## Main
echo "Starting PandoraFMS Agent deployment ver. $S_VERSION" echo "Starting PandoraFMS Agent binary deployment ver. $S_VERSION"
execute_cmd "[ $PANDORA_SERVER_IP ]" 'Check Server IP Address' 'Please define env variable PANDORA_SERVER_IP' execute_cmd "[ $PANDORA_SERVER_IP ]" 'Check Server IP Address' 'Please define env variable PANDORA_SERVER_IP'
@ -104,8 +104,6 @@ OS=$([[ $(grep '^ID_LIKE=' /etc/os-release) ]] && grep ^ID_LIKE= /etc/os-release
[[ $OS =~ 'rhel' ]] && OS_RELEASE=$OS [[ $OS =~ 'rhel' ]] && OS_RELEASE=$OS
[[ $OS =~ 'fedora' ]] && OS_RELEASE=$OS [[ $OS =~ 'fedora' ]] && OS_RELEASE=$OS
[[ $OS =~ 'debian' ]] && OS_RELEASE=$OS [[ $OS =~ 'debian' ]] && OS_RELEASE=$OS
#[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
#[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
# initialice logfile # initialice logfile
execute_cmd "echo 'Starting community deployment' > $LOGFILE" "All installer activity is logged on $LOGFILE" execute_cmd "echo 'Starting community deployment' > $LOGFILE" "All installer activity is logged on $LOGFILE"
@ -126,6 +124,30 @@ check_repo_connection
execute_cmd "grep --version" 'Checking needed tools: grep' execute_cmd "grep --version" 'Checking needed tools: grep'
execute_cmd "sed --version" 'Checking needed tools: sed' execute_cmd "sed --version" 'Checking needed tools: sed'
# Arch check
arch=$(uname -m)
case $arch in
x86_64)
echo -e "${cyan}Arch: $arch ${reset} "
;;
x86)
echo -e "${yellow}Skiping installation arch: $arch not suported by binary agent please consider to install source agent${reset}"
exit -1
;;
armv7l)
echo -e "${yellow}Skiping installation arch: $arch not suported by binary agent please consider to install source agent${reset}"
exit -1
;;
*)
echo -e "${yellow}Skiping installation arch: $arch not suported by binary agent please consider to install source agent${reset}"
exit -1
;;
esac
# Creating working directory # Creating working directory
rm -rf $HOME/pandora_deploy_tmp/ &>> $LOGFILE rm -rf $HOME/pandora_deploy_tmp/ &>> $LOGFILE
mkdir $HOME/pandora_deploy_tmp &>> $LOGFILE mkdir $HOME/pandora_deploy_tmp &>> $LOGFILE
@ -148,6 +170,10 @@ if [[ $OS_RELEASE =~ 'rhel' ]] || [[ $OS_RELEASE =~ 'fedora' ]]; then
# Check rh version # Check rh version
if [ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '8' ] ; then if [ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '8' ] ; then
package_manager_cmd=dnf package_manager_cmd=dnf
execute_cmd "$package_manager_cmd install -y libnsl" "Installing dependencies"
elif [ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '9' ] ; then
package_manager_cmd=dnf
execute_cmd "$package_manager_cmd install -y libnsl libxcrypt-compat" "Installing dependencies"
elif [ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '7' ] ; then elif [ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '7' ] ; then
package_manager_cmd=yum package_manager_cmd=yum
@ -158,24 +184,23 @@ if [[ $OS_RELEASE =~ 'rhel' ]] || [[ $OS_RELEASE =~ 'fedora' ]]; then
echo -e "${cyan}Installing agent dependencies...${reset}" ${green}OK${reset} echo -e "${cyan}Installing agent dependencies...${reset}" ${green}OK${reset}
# Insatall pandora agent # Insatall pandora agent
$package_manager_cmd install -y http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux-7.0NG.noarch.rpm &>> $LOGFILE [ "$PANDORA_AGENT_PACKAGE_EL" ] || PANDORA_AGENT_PACKAGE_EL="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux_bin-7.0NG.x86_64.rpm "
echo -en "${cyan}Installing Pandora FMS agent...${reset}" execute_cmd "$package_manager_cmd install -y ${PANDORA_AGENT_PACKAGE_EL}" 'Installing Pandora FMS agent package'
check_cmd_status 'Error installing Pandora FMS agent' #[[ $PANDORA_AGENT_SSL ]] && execute_cmd "$package_manager_cmd install -y perl-IO-Socket-SSL" "Installing SSL libraries for encrypted connection"
[[ $PANDORA_AGENT_SSL ]] && execute_cmd "$package_manager_cmd install -y perl-IO-Socket-SSL" "Installing SSL libraries for encrypted connection"
fi fi
if [[ $OS_RELEASE == 'debian' ]]; then if [[ $OS_RELEASE == 'debian' ]]; then
[ "$PANDORA_AGENT_PACKAGE_UBUNTU" ] || PANDORA_AGENT_PACKAGE_UBUNTU='https://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG_x86_64.tar.gz'
execute_cmd "apt update" 'Updating repos' execute_cmd "apt update" 'Updating repos'
execute_cmd "apt install -y perl wget curl unzip procps python3 python3-pip" 'Installing agent dependencies' execute_cmd "apt install -y perl wget curl unzip procps python3 python3-pip" 'Installing agent dependencies'
execute_cmd 'wget http://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG.tar.gz' 'Downloading Pandora FMS agent package' execute_cmd "curl --output pandorafms_agent_linux-7.0NG.tar.gz ${PANDORA_AGENT_PACKAGE_UBUNTU}" 'Downloading Pandora FMS agent package'
execute_cmd 'install_tarball pandorafms_agent_linux-7.0NG.tar.gz' 'Installing Pandora FMS agent' execute_cmd 'install_tarball pandorafms_agent_linux-7.0NG.tar.gz' 'Installing Pandora FMS agent'
[[ $PANDORA_AGENT_SSL ]] && execute_cmd 'apt install -y libio-socket-ssl-perl' "Installing SSL libraries for encrypted connection" #[[ $PANDORA_AGENT_SSL ]] && execute_cmd 'apt install -y libio-socket-ssl-perl' "Installing SSL libraries for encrypted connection"
cd $HOME/pandora_deploy_tmp cd $HOME/pandora_deploy_tmp
fi fi
# Configuring Agente # Configuring Agente
[[ $PANDORA_SERVER_IP ]] && sed -i "s/^server_ip.*$/server_ip $PANDORA_SERVER_IP/g" $PANDORA_AGENT_CONF [[ $PANDORA_SERVER_IP ]] && sed -i "s/^server_ip.*$/server_ip $PANDORA_SERVER_IP/g" $PANDORA_AGENT_CONF
[[ $PANDORA_REMOTE_CONFIG ]] && sed -i "s/^remote_config.*$/remote_config $PANDORA_REMOTE_CONFIG/g" $PANDORA_AGENT_CONF [[ $PANDORA_REMOTE_CONFIG ]] && sed -i "s/^remote_config.*$/remote_config $PANDORA_REMOTE_CONFIG/g" $PANDORA_AGENT_CONF
[[ $PANDORA_GROUP ]] && sed -i "s/^group.*$/group $PANDORA_GROUP/g" $PANDORA_AGENT_CONF [[ $PANDORA_GROUP ]] && sed -i "s/^group.*$/group $PANDORA_GROUP/g" $PANDORA_AGENT_CONF
@ -187,27 +212,6 @@ fi
[[ $PANDORA_AGENT_SSL ]] && sed -i "s/^#server_ssl.*$/server_ssl $PANDORA_AGENT_SSL/g" $PANDORA_AGENT_CONF [[ $PANDORA_AGENT_SSL ]] && sed -i "s/^#server_ssl.*$/server_ssl $PANDORA_AGENT_SSL/g" $PANDORA_AGENT_CONF
#installing autodiscover
arch=$(uname -m)
case $arch in
x86_64)
execute_cmd 'install_autodiscover x86_64' "installing service autodiscover on $arch" 'Error unable to install autodiscovery'
;;
x86)
execute_cmd 'install_autodiscover x84' "installing service autodiscover on $arch" 'Error unable to install autodiscovery'
;;
armv7l)
echo -e "${cyan}Skiping autodiscover installation arch $arch not suported${reset}"
;;
*)
echo -e "${yellow}Skiping autodiscover installation arch $arch not suported${reset}"
;;
esac
#Starting pandora agent daemon. #Starting pandora agent daemon.
execute_cmd '/etc/init.d/pandora_agent_daemon restart' 'Starting Pandora Agent' execute_cmd '/etc/init.d/pandora_agent_daemon restart' 'Starting Pandora Agent'

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix package: pandorafms-agent-unix
Version: 7.0NG.773.3-230906 Version: 7.0NG.773.3-230915
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.773.3-230906" pandora_version="7.0NG.773.3-230915"
echo "Test if you has the tools for to make the packages." echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -1031,7 +1031,7 @@ my $Sem = undef;
my $ThreadSem = undef; my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.773.3'; use constant AGENT_VERSION => '7.0NG.773.3';
use constant AGENT_BUILD => '230906'; use constant AGENT_BUILD => '230915';
# Agent log default file size maximum and instances # Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000; use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_agent_linux %define name pandorafms_agent_linux
%define version 7.0NG.773.3 %define version 7.0NG.773.3
%define release 230906 %define release 230915
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin %define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux %define source_name pandorafms_agent_linux
%define version 7.0NG.773.3 %define version 7.0NG.773.3
%define release 230906 %define release 230915
Summary: Pandora FMS Linux agent, binary version Summary: Pandora FMS Linux agent, binary version
Name: %{name} Name: %{name}

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_agent_linux %define name pandorafms_agent_linux
%define version 7.0NG.773.3 %define version 7.0NG.773.3
%define release 230906 %define release 230915
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -10,7 +10,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.773.3" PI_VERSION="7.0NG.773.3"
PI_BUILD="230906" PI_BUILD="230915"
OS_NAME=`uname -s` OS_NAME=`uname -s`
FORCE=0 FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{} {}
Version Version
{230906} {230915}
ViewReadme ViewReadme
{Yes} {Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils; using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1 #define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.773.3 Build 230906") #define PANDORA_VERSION ("7.0NG.773.3 Build 230915")
string pandora_path; string pandora_path;
string pandora_dir; string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Pandora FMS" VALUE "LegalCopyright", "Pandora FMS"
VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent" VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.773.3(Build 230906))" VALUE "ProductVersion", "(7.0NG.773.3(Build 230915))"
VALUE "FileVersion", "1.0.0.0" VALUE "FileVersion", "1.0.0.0"
END END
END END

View File

@ -1,5 +1,5 @@
package: pandorafms-console package: pandorafms-console
Version: 7.0NG.773.3-230906 Version: 7.0NG.773.3-230915
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.773.3-230906" pandora_version="7.0NG.773.3-230915"
package_pear=0 package_pear=0
package_pandora=1 package_pandora=1

View File

@ -811,7 +811,7 @@ foreach ($simple_alerts as $alert) {
$data[3] .= '<tr class="datos2">'; $data[3] .= '<tr class="datos2">';
$data[3] .= '<td class="w50p">'.html_print_label_input_block( $data[3] .= '<td class="w50p">'.html_print_label_input_block(
__('Agent'), __('Agent'),
ui_print_truncate_text($alias, 'agent_small', false, true, true, '[&hellip;]') ui_print_truncate_text($alias, 'agent_medium', false, true, true, '[&hellip;]')
).'</td>'; ).'</td>';
$data[3] .= '<td class="w50p">'.html_print_label_input_block( $data[3] .= '<td class="w50p">'.html_print_label_input_block(
__('Module'), __('Module'),

View File

@ -1370,6 +1370,28 @@ $class = 'databox filters';
} }
?> ?>
<?php
if (is_metaconsole() === true) {
?>
<tr id="row_servers_all" class="datos">
<td class="bolder"><?php echo __('Server'); ?></td>
<td >
<?php
html_print_select(
$servers,
'combo_server_all',
$server_name,
'',
__('All nodes'),
'all'
);
?>
</td>
</tr>
<?php
}
?>
<?php <?php
if ($meta) { if ($meta) {
?> ?>
@ -6651,6 +6673,7 @@ function chooseType() {
$("#row_alert_actions").hide(); $("#row_alert_actions").hide();
$("#row_servers").hide(); $("#row_servers").hide();
$("#row_servers_all_opt").hide(); $("#row_servers_all_opt").hide();
$("#row_servers_all").hide();
$("#row_multiple_servers").hide(); $("#row_multiple_servers").hide();
$("#row_sort").hide(); $("#row_sort").hide();
$("#row_date").hide(); $("#row_date").hide();
@ -7218,7 +7241,7 @@ function chooseType() {
case 'group_report': case 'group_report':
$("#row_group").show(); $("#row_group").show();
$("#row_servers_all_opt").show(); $("#row_servers_all").show();
$("#row_description").show(); $("#row_description").show();
$("#row_historical_db_check").hide(); $("#row_historical_db_check").hide();
break; break;

View File

@ -1997,7 +1997,7 @@ switch ($action) {
break; break;
case 'group_report': case 'group_report':
$values['server_name'] = get_parameter('combo_server'); $values['server_name'] = get_parameter('combo_server_all');
$good_format = true; $good_format = true;
break; break;
@ -2884,7 +2884,7 @@ switch ($action) {
break; break;
case 'group_report': case 'group_report':
$values['server_name'] = get_parameter('combo_server'); $values['server_name'] = get_parameter('combo_server_all');
$good_format = true; $good_format = true;
break; break;

View File

@ -1025,6 +1025,27 @@ $table_font->data[$row][] = html_print_label_input_block(
); );
$row++; $row++;
$table_font->data[$row][] = html_print_label_input_block(
__('Truncate agent text at end'),
html_print_checkbox_switch(
'truncate_agent_at_end',
1,
$config['truncate_agent_at_end'],
true
)
);
$table_font->data[$row][] = html_print_label_input_block(
__('Truncate module text at end'),
html_print_checkbox_switch(
'truncate_module_at_end',
1,
$config['truncate_module_at_end'],
true
)
);
$row++;
$table_font->data[$row][] = html_print_label_input_block( $table_font->data[$row][] = html_print_label_input_block(
__('Agent size text'), __('Agent size text'),
html_print_div( html_print_div(

View File

@ -501,7 +501,7 @@ if ($show_update_action_menu) {
$data .= '<td class="datos">'; $data .= '<td class="datos">';
$data .= ui_print_truncate_text( $data .= ui_print_truncate_text(
$agent_alias, $agent_alias,
'agent_small', 'agent_medium',
false, false,
true, true,
true, true,

View File

@ -0,0 +1,57 @@
<?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Users
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2023 Pandora FMS
* Please see https://pandorafms.com/community/ 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.
* ============================================================================
*/
global $config;
// Includes.
require_once $config['homedir'].'/include/functions_notifications.php';
$change_label = get_parameter('change_label', 0);
if ($change_label === '1') {
$label = get_parameter('label', '');
$source = get_parameter('source', 0);
$user = get_parameter('user', '');
$value = get_parameter('value', 0) ? 1 : 0;
// Update the label value.
ob_clean();
$json = json_encode(
[
'result' => notifications_set_user_label_status(
$source,
$user,
$label,
$value
),
]
);
echo $json;
return;
}

View File

@ -703,7 +703,7 @@ class ConsoleSupervisor
$total_agents = db_get_value('count(*)', 'tagente'); $total_agents = db_get_value('count(*)', 'tagente');
if ($total_agents >= 200) { if ($total_agents >= 200) {
if ($config['agentaccess'] !== 0) { if ((int) $config['agentaccess'] !== 0) {
db_process_sql_update('tconfig', ['value' => 0], ['token' => 'agentaccess']); db_process_sql_update('tconfig', ['value' => 0], ['token' => 'agentaccess']);
$this->notify( $this->notify(
[ [

View File

@ -20,7 +20,7 @@
/** /**
* Pandora build version and version * Pandora build version and version
*/ */
$build_version = 'PC230906'; $build_version = 'PC230915';
$pandora_version = 'v7.0NG.773.3'; $pandora_version = 'v7.0NG.773.3';
// Do not overwrite default timezone set if defined. // Do not overwrite default timezone set if defined.

View File

@ -1288,6 +1288,10 @@ function config_update_config()
$error_update[] = __('Default line menu items for the Services'); $error_update[] = __('Default line menu items for the Services');
} }
if (config_update_value('truncate_agent_at_end', get_parameter('truncate_agent_at_end'), true) === false) {
$error_update[] = __('Truncate agent text at end');
}
if (config_update_value('agent_size_text_small', get_parameter('agent_size_text_small'), true) === false) { if (config_update_value('agent_size_text_small', get_parameter('agent_size_text_small'), true) === false) {
$error_update[] = __('Agent size text'); $error_update[] = __('Agent size text');
} }
@ -1296,6 +1300,10 @@ function config_update_config()
$error_update[] = __('Agent size text'); $error_update[] = __('Agent size text');
} }
if (config_update_value('truncate_module_at_end', get_parameter('truncate_module_at_end'), true) === false) {
$error_update[] = __('Truncate module text at end');
}
if (config_update_value('module_size_text_small', get_parameter('module_size_text_small'), true) === false) { if (config_update_value('module_size_text_small', get_parameter('module_size_text_small'), true) === false) {
$error_update[] = __('Module size text'); $error_update[] = __('Module size text');
} }
@ -3526,6 +3534,10 @@ function config_process_config()
config_update_value('display_item_frame', 1); config_update_value('display_item_frame', 1);
} }
if (!isset($config['truncate_agent_at_end'])) {
config_update_value('truncate_agent_at_end', 0);
}
if (!isset($config['agent_size_text_small'])) { if (!isset($config['agent_size_text_small'])) {
config_update_value('agent_size_text_small', 18); config_update_value('agent_size_text_small', 18);
} }
@ -3534,6 +3546,10 @@ function config_process_config()
config_update_value('agent_size_text_medium', 50); config_update_value('agent_size_text_medium', 50);
} }
if (!isset($config['truncate_module_at_end'])) {
config_update_value('truncate_module_at_end', 0);
}
if (!isset($config['module_size_text_small'])) { if (!isset($config['module_size_text_small'])) {
config_update_value('module_size_text_small', 25); config_update_value('module_size_text_small', 25);
} }

View File

@ -1577,10 +1577,16 @@ function graphic_combined_module(
$server_name = metaconsole_get_server_by_id($modules[0]['server']); $server_name = metaconsole_get_server_by_id($modules[0]['server']);
} }
if (isset($params_combined['custom_period']) !== false && $params_combined['custom_period'] !== false) {
$period = $params_combined['custom_period'];
} else {
$period = $params['period'];
}
if ($params_combined['projection']) { if ($params_combined['projection']) {
$output_projection = forecast_projection_graph( $output_projection = forecast_projection_graph(
$module_list[0], $module_list[0],
$params['period'], $period,
$params_combined['projection'], $params_combined['projection'],
false, false,
false, false,
@ -5376,9 +5382,11 @@ function graph_so_by_group($id_group, $width=300, $height=200, $recursive=true,
'SELECT COUNT(id_agente) AS count, 'SELECT COUNT(id_agente) AS count,
os.name os.name
FROM tagente a FROM tagente a
LEFT JOIN tagent_secondary_group g ON g.id_agent = a.id_agente
LEFT JOIN tconfig_os os ON a.id_os = os.id_os LEFT JOIN tconfig_os os ON a.id_os = os.id_os
WHERE a.id_grupo IN (%s) WHERE a.id_grupo IN (%s) OR g.id_group IN (%s)
GROUP BY os.id_os', GROUP BY os.id_os',
implode(',', $id_groups),
implode(',', $id_groups) implode(',', $id_groups)
); );
@ -5460,7 +5468,7 @@ function graph_events_agent_by_group($id_group, $width=300, $height=200, $noWate
} }
} }
$filter_groups = ' AND te.id_grupo IN ('.implode(',', $id_groups).') '; $filter_groups = ' AND (te.id_grupo IN ('.implode(',', $id_groups).') OR g.id_group IN ('.implode(',', $id_groups).'))';
// This will give the distinct id_agente, give the id_grupo that goes // This will give the distinct id_agente, give the id_grupo that goes
// with it and then the number of times it occured. GROUP BY statement // with it and then the number of times it occured. GROUP BY statement
@ -5469,6 +5477,7 @@ function graph_events_agent_by_group($id_group, $width=300, $height=200, $noWate
'SELECT DISTINCT(id_agente) AS id_agente, 'SELECT DISTINCT(id_agente) AS id_agente,
COUNT(id_agente) AS count COUNT(id_agente) AS count
FROM tevento te FROM tevento te
LEFT JOIN tagent_secondary_group g ON g.id_agent = te.id_agente
WHERE 1=1 AND estado = 0 WHERE 1=1 AND estado = 0
%s %s %s %s
GROUP BY id_agente GROUP BY id_agente

View File

@ -2501,7 +2501,9 @@ function groups_get_heat_map_agents(array $id_group, float $width=0, float $heig
$id_group = [$id_group]; $id_group = [$id_group];
} }
$sql = 'SELECT * FROM tagente WHERE id_grupo IN('.implode(',', $id_group).')'; $sql = 'SELECT * FROM tagente a
LEFT JOIN tagent_secondary_group g ON g.id_agent = a.id_agente
WHERE a.id_grupo IN ('.implode(',', $id_group).') OR g.id_group IN ('.implode(',', $id_group).')';
$all_agents = db_get_all_rows_sql($sql); $all_agents = db_get_all_rows_sql($sql);
if (empty($all_agents)) { if (empty($all_agents)) {
@ -2654,8 +2656,8 @@ function tactical_groups_get_agents_and_monitoring($id_groups, $data='')
if ($data === '') { if ($data === '') {
$data = [ $data = [
'total_agents' => groups_agents_total_counters($id_groups, false)['total'], 'total_agents' => groups_agents_total_counters($id_groups, true)['total'],
'monitor_total' => groups_get_total_monitors($id_groups, [], [], false, false, false, false), 'monitor_total' => groups_get_total_monitors($id_groups, [], [], false, false, false, true),
]; ];
} }
@ -2719,7 +2721,7 @@ function tactical_groups_get_stats_alerts($id_groups, $data='')
} }
$urls = []; $urls = [];
$urls['monitor_alerts'] = $config['homeurl'].'index.php?sec=estado&amp;sec2=operation/agentes/alerts_status&amp;refr=60&ag_group='.$id_groups[0]; $urls['monitor_alerts'] = $config['homeurl'].'index.php?sec=estado&amp;sec2=operation/agentes/alerts_status&amp;refr=60&disabled=all&ag_group='.$id_groups[0];
$urls['monitor_alerts_fired'] = $config['homeurl'].'index.php?sec=estado&amp;sec2=operation/agentes/alerts_status&amp;refr=60&disabled=fired&ag_group='.$id_groups[0]; $urls['monitor_alerts_fired'] = $config['homeurl'].'index.php?sec=estado&amp;sec2=operation/agentes/alerts_status&amp;refr=60&disabled=fired&ag_group='.$id_groups[0];
// Alerts table. // Alerts table.
@ -2790,11 +2792,11 @@ function groups_get_stats_modules_status($id_groups, $graph_width=250, $graph_he
if ($data === '') { if ($data === '') {
$data = [ $data = [
'monitor_critical' => groups_get_critical_monitors($id_groups, [], [], false, false, false, false), 'monitor_critical' => groups_get_critical_monitors($id_groups, [], [], false, false, false, true),
'monitor_warning' => groups_get_warning_monitors($id_groups, [], [], false, false, false, false), 'monitor_warning' => groups_get_warning_monitors($id_groups, [], [], false, false, false, true),
'monitor_ok' => groups_get_normal_monitors($id_groups, [], [], false, false, false, false), 'monitor_ok' => groups_get_normal_monitors($id_groups, [], [], false, false, false, true),
'monitor_unknown' => groups_get_unknown_monitors($id_groups, [], [], false, false, false, false), 'monitor_unknown' => groups_get_unknown_monitors($id_groups, [], [], false, false, false, true),
'monitor_not_init' => groups_get_not_init_monitors($id_groups, [], [], false, false, false, false), 'monitor_not_init' => groups_get_not_init_monitors($id_groups, [], [], false, false, false, true),
]; ];
} }

View File

@ -3303,7 +3303,7 @@ function html_print_input_image($name, $src, $value, $style='', $return=false, $
// If metaconsole is activated and image doesn't exists try to search on normal console. // If metaconsole is activated and image doesn't exists try to search on normal console.
if (is_metaconsole() === true) { if (is_metaconsole() === true) {
if (false === @file_get_contents($src, 0, null, 0, 1)) { if ($src !== null && false === @file_get_contents($src, 0, null, 0, 1)) {
$src = '../../'.$src; $src = '../../'.$src;
} }
} }
@ -7302,6 +7302,8 @@ function html_print_select_date_range(
$date_init = date('Y/m/d', strtotime($date_end.' -1 days')); $date_init = date('Y/m/d', strtotime($date_end.' -1 days'));
} }
$date_init = date('Y/m/d', strtotime($date_init));
if ($time_init === '') { if ($time_init === '') {
$time_init = date('H:i:s'); $time_init = date('H:i:s');
} }

View File

@ -701,6 +701,7 @@ function modules_update_agent_module(
} }
// Disable action requires a special function // Disable action requires a special function
$result = false;
if (isset($values['disabled'])) { if (isset($values['disabled'])) {
$result_disable = modules_change_disabled($id, $values['disabled']); $result_disable = modules_change_disabled($id, $values['disabled']);
@ -709,7 +710,9 @@ function modules_update_agent_module(
$result_disable = true; $result_disable = true;
} }
if (empty($values) === false) {
$result = @db_process_sql_update('tagente_modulo', $values, $where); $result = @db_process_sql_update('tagente_modulo', $values, $where);
}
if ($result == false) { if ($result == false) {
if ($result_disable === ERR_GENERIC) { if ($result_disable === ERR_GENERIC) {

View File

@ -635,6 +635,12 @@ function notifications_get_user_label_status($source, $user, $label)
array_keys(users_get_groups($user)), array_keys(users_get_groups($user)),
array_keys(notifications_get_group_sources_for_select($source['id'])) array_keys(notifications_get_group_sources_for_select($source['id']))
); );
// Clean default common groups error for mesagges.
if ($common_groups[0] === 0) {
unset($common_groups[0]);
}
// No group found, return no permissions. // No group found, return no permissions.
$value = empty($common_groups) ? false : $source[$label]; $value = empty($common_groups) ? false : $source[$label];
return notifications_build_user_enable_return($value, false); return notifications_build_user_enable_return($value, false);
@ -760,9 +766,10 @@ function notifications_print_global_source_configuration($source)
} }
// Generate the title. // Generate the title.
$html_title = "<div class='global-config-notification-title'>"; $html_title = '<h2 style="margin-bottom: auto;">'.$source['description'].'</h2>';
$html_title .= "<div class='global-config-notification-title'>";
$html_title .= html_print_switch($switch_values); $html_title .= html_print_switch($switch_values);
$html_title .= '<h2>'.$source['description'].'</h2>'; $html_title .= '<h2>'.__('Enable user configuration').'</h2>';
$html_title .= '</div>'; $html_title .= '</div>';
// Generate the html for title. // Generate the html for title.

View File

@ -159,7 +159,10 @@ function reporting_make_reporting_data(
$force_width_chart=null, $force_width_chart=null,
$force_height_chart=null, $force_height_chart=null,
$pdf=false, $pdf=false,
$from_template=false $from_template=false,
$filter_type='',
$custom_date_end='',
$custom_period=false
) { ) {
global $config; global $config;
@ -194,8 +197,7 @@ function reporting_make_reporting_data(
if (empty($contents)) { if (empty($contents)) {
return reporting_check_structure_report($report); return reporting_check_structure_report($report);
} };
$metaconsole_on = is_metaconsole(); $metaconsole_on = is_metaconsole();
$index_content = 0; $index_content = 0;
@ -562,7 +564,10 @@ function reporting_make_reporting_data(
$type, $type,
$force_width_chart, $force_width_chart,
$force_height_chart, $force_height_chart,
$pdf $pdf,
$filter_type,
$custom_date_end,
$custom_period
); );
break; break;
@ -6917,7 +6922,10 @@ function reporting_projection_graph(
$type='dinamic', $type='dinamic',
$force_width_chart=null, $force_width_chart=null,
$force_height_chart=null, $force_height_chart=null,
$pdf=false $pdf=false,
$filter_type='',
$custom_date_end='',
$custom_period=false
) { ) {
global $config; global $config;
@ -6983,6 +6991,7 @@ function reporting_projection_graph(
$return['agent_name_db'] = $agent_name_db; $return['agent_name_db'] = $agent_name_db;
$return['agent_name'] = $agent_name; $return['agent_name'] = $agent_name;
$return['module_name'] = $module_name; $return['module_name'] = $module_name;
$return['datetime'] = $report['datetime'];
set_time_limit(500); set_time_limit(500);
@ -7003,8 +7012,24 @@ function reporting_projection_graph(
'return_img_base_64' => true, 'return_img_base_64' => true,
]; ];
$top_n_value = $content['top_n_value'];
if ($filter_type === 'this_week') {
$current_date = date('Y/m/d H:i:s');
$monday = date('Y/m/d H:i:s', strtotime('last monday'));
$sunday = date('Y/m/d H:i:s', strtotime($monday.' +6 days'));
$top_n_value = (strtotime($sunday) - strtotime($current_date));
} else if ($filter_type === 'this_month') {
$current_date = date('Y/m/d H:i:s');
$last_of_month = date('Y/m/d', strtotime('last day of this month'));
$top_n_value = (strtotime($last_of_month) - strtotime($current_date));
} else if ($filter_type === 'chose_range') {
$current_date = date('Y/m/d H:i:s');
$top_n_value = (strtotime($custom_date_end) - strtotime($current_date));
}
$params_combined = [ $params_combined = [
'projection' => $content['top_n_value'], 'projection' => $top_n_value,
'custom_period' => $custom_period,
]; ];
if ($pdf === true) { if ($pdf === true) {

View File

@ -26,6 +26,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* ============================================================================ * ============================================================================
*/ */
use PandoraFMS\Enterprise\Metaconsole\Node;
require_once $config['homedir'].'/include/functions.php'; require_once $config['homedir'].'/include/functions.php';
require_once $config['homedir'].'/include/functions_db.php'; require_once $config['homedir'].'/include/functions_db.php';
@ -119,10 +120,15 @@ function reporting_html_header(
} }
function html_do_report_info($report) function html_do_report_info($report, $custom_date_end=false, $custom_period=false)
{ {
global $config; global $config;
if ($custom_period !== false && $custom_date_end !== false) {
$report['datetime'] = strtotime($custom_date_end);
$report['period'] = $custom_period;
}
if ($config['style'] === 'pandora_black' && !is_metaconsole()) { if ($config['style'] === 'pandora_black' && !is_metaconsole()) {
$background_color = '#222'; $background_color = '#222';
} else { } else {
@ -170,10 +176,10 @@ function html_do_report_info($report)
* *
* @return array * @return array
*/ */
function reporting_html_print_report($report, $mini=false, $report_info=1) function reporting_html_print_report($report, $mini=false, $report_info=1, $custom_date_end=false, $custom_period=false)
{ {
if ($report_info == 1) { if ($report_info == 1) {
html_do_report_info($report); html_do_report_info($report, $custom_date_end, $custom_period);
} }
foreach ($report['contents'] as $key => $item) { foreach ($report['contents'] as $key => $item) {
@ -226,6 +232,12 @@ function reporting_html_print_report($report, $mini=false, $report_info=1)
$label = ''; $label = '';
} }
if ($custom_date_end !== false) {
$to = strtotime($custom_date_end);
} else {
$to = $item['date']['to'];
}
reporting_html_header( reporting_html_header(
$table, $table,
$mini, $mini,
@ -234,7 +246,7 @@ function reporting_html_print_report($report, $mini=false, $report_info=1)
$item['date']['period'], $item['date']['period'],
$item['date']['date'], $item['date']['date'],
$item['date']['from'], $item['date']['from'],
$item['date']['to'], $to,
$label $label
); );
@ -2703,23 +2715,51 @@ function reporting_html_group_report($table, $item, $pdf=0)
$table->colspan['group_report']['cell'] = 3; $table->colspan['group_report']['cell'] = 3;
$table->cellstyle['group_report']['cell'] = 'text-align: center;'; $table->cellstyle['group_report']['cell'] = 'text-align: center;';
$metaconsole_connected = false; $metaconsole_connected = false;
if (is_metaconsole() === true) { if (is_metaconsole() === true && $item['server_name'] != '0') {
$connection = metaconsole_get_connection($item['server_name']); $connection = metaconsole_get_connection($item['server_name']);
if (metaconsole_connect($connection) == NOERR) { if (metaconsole_connect($connection) == NOERR) {
$metaconsole_connected = true; $metaconsole_connected = true;
} }
} }
$all_group_id = [];
$group_events = [];
$group_os = [];
if ($item['subtitle'] === 'All') { if ($item['subtitle'] === 'All') {
$group_id = []; if (is_metaconsole() === true && $item['server_name'] === 'all' || $item['server_name'] === '0') {
$all_group_id = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo'); $nodes = metaconsole_get_connections();
foreach ($nodes as $node) {
try {
$nd = new Node($node['id']);
$nd->connect();
foreach ($all_group_id as $group) { $all_group_id_node = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo');
$group_id[] = $group['id_grupo'];
$group_events_node = db_get_all_rows_sql(
'SELECT COUNT(te.id_evento) as count_events, ta.alias
FROM tevento as te
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente
GROUP BY te.id_agente'
);
$group_os_node = db_get_all_rows_sql(
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
FROM tconfig_os as os
INNER JOIN tagente as ta ON ta.id_os = os.id_os GROUP by os.name'
);
$all_group_id = array_merge($all_group_id, $all_group_id_node);
$group_events = array_merge($group_events, $group_events_node);
$group_os = array_merge($group_os, $group_os_node);
} catch (\Exception $e) {
$nd->disconnect();
$modules_regex_node = [];
} finally {
$nd->disconnect();
} }
}
$description = __('Data view of all groups'); } else {
$icon = ''; $all_group_id = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo');
$group_events = db_get_all_rows_sql( $group_events = db_get_all_rows_sql(
'SELECT COUNT(te.id_evento) as count_events, ta.alias 'SELECT COUNT(te.id_evento) as count_events, ta.alias
@ -2727,14 +2767,87 @@ function reporting_html_group_report($table, $item, $pdf=0)
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente INNER JOIN tagente as ta ON te.id_agente = ta.id_agente
GROUP BY te.id_agente' GROUP BY te.id_agente'
); );
$group_os = db_get_all_rows_sql( $group_os = db_get_all_rows_sql(
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo 'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
FROM tconfig_os as os FROM tconfig_os as os
INNER JOIN tagente as ta ON ta.id_os = os.id_os GROUP by os.name' INNER JOIN tagente as ta ON ta.id_os = os.id_os GROUP by os.name'
); );
}
$group_id = [];
foreach ($all_group_id as $group) {
$group_id[] = $group['id_grupo'];
}
$description = __('Data view of all groups');
$icon = '';
} else { } else {
$group_id = db_get_value('id_grupo', 'tgrupo', 'nombre', $item['subtitle']); $group_id = db_get_value('id_grupo', 'tgrupo', 'nombre', $item['subtitle']);
if (is_metaconsole() === true && $item['server_name'] === 'all' || $item['server_name'] === '0') {
$nodes = metaconsole_get_connections();
foreach ($nodes as $node) {
try {
$nd = new Node($node['id']);
$nd->connect();
$group_id_node = db_get_value('id_grupo', 'tgrupo', 'nombre', $item['subtitle']);
$description = db_get_value('description', 'tgrupo', 'id_grupo', $group_id_node);
$icon_url = db_get_value('icon', 'tgrupo', 'id_grupo', $group_id_node);
$icon = html_print_image(
'images/'.$icon_url,
true,
[
'title' => $item['subtitle'],
'class' => 'main_menu_icon invert_filter',
]
);
$childrens = db_get_all_rows_sql('SELECT id_grupo FROM tgrupo WHERE parent = '.$group_id_node);
$total_agents = db_get_all_rows_sql('SELECT COUNT(id_agente) as total FROM tagente where id_grupo = '.$group_id_node);
if ($childrens !== false && (int) $total_agents[0]['total'] !== $item['data']['group_stats']['total_agents']) {
$array_group_id = [];
$array_group_id[] = $group_id_node;
foreach ($childrens as $group) {
$array_group_id[] = $group['id_grupo'];
}
$group_id_node = $array_group_id;
$explode_group_id = implode(',', $group_id_node);
} else {
$explode_group_id = $group_id_node;
}
$group_events_node = db_get_all_rows_sql(
'SELECT COUNT(te.id_evento) as count_events, ta.alias
FROM tevento as te
INNER JOIN tagente as ta ON te.id_agente = ta.id_agente WHERE te.id_grupo IN ('.$explode_group_id.')
GROUP BY te.id_agente'
);
$group_os_node = db_get_all_rows_sql(
'SELECT COUNT(os.name) as count_os, os.name as name_os, ta.id_grupo
FROM tconfig_os as os
INNER JOIN tagente as ta ON ta.id_os = os.id_os
WHERE ta.id_grupo IN ('.$explode_group_id.') GROUP by os.name'
);
if (is_array($group_events_node) === true) {
$group_events = array_merge($group_events, $group_events_node);
}
if (is_array($group_os_node) === true) {
$group_os = array_merge($group_os, $group_os_node);
}
} catch (\Exception $e) {
$nd->disconnect();
} finally {
$nd->disconnect();
}
}
} else {
$description = db_get_value('description', 'tgrupo', 'id_grupo', $group_id); $description = db_get_value('description', 'tgrupo', 'id_grupo', $group_id);
$icon_url = db_get_value('icon', 'tgrupo', 'id_grupo', $group_id); $icon_url = db_get_value('icon', 'tgrupo', 'id_grupo', $group_id);
$icon = html_print_image( $icon = html_print_image(
@ -2776,6 +2889,7 @@ function reporting_html_group_report($table, $item, $pdf=0)
WHERE ta.id_grupo IN ('.$explode_group_id.') GROUP by os.name' WHERE ta.id_grupo IN ('.$explode_group_id.') GROUP by os.name'
); );
} }
}
if ($metaconsole_connected === true) { if ($metaconsole_connected === true) {
metaconsole_restore_db(); metaconsole_restore_db();
@ -2885,9 +2999,11 @@ function reporting_html_group_report($table, $item, $pdf=0)
$options = []; $options = [];
$labels = []; $labels = [];
foreach ($group_os as $value) { foreach ($group_os as $value) {
$data[$value['name_os']] = $value['count_os']; $data[$value['name_os']] += $value['count_os'];
if (array_search($value['name_os'], $labels) === false) {
$labels[] = io_safe_output($value['name_os']); $labels[] = io_safe_output($value['name_os']);
} }
}
$options = [ $options = [
'width' => $graph_width, 'width' => $graph_width,

View File

@ -283,6 +283,10 @@ function servers_get_performance($filter=[])
} }
foreach ($counts as $c) { foreach ($counts as $c) {
if (empty($c['modules']) === true) {
continue;
}
switch ($c['server_type']) { switch ($c['server_type']) {
case SERVER_TYPE_DATA: case SERVER_TYPE_DATA:
$data['total_local_modules'] = $c['modules']; $data['total_local_modules'] = $c['modules'];
@ -292,7 +296,7 @@ function servers_get_performance($filter=[])
case SERVER_TYPE_SNMP: case SERVER_TYPE_SNMP:
case SERVER_TYPE_ENTERPRISE_ICMP: case SERVER_TYPE_ENTERPRISE_ICMP:
case SERVER_TYPE_ENTERPRISE_SNMP: case SERVER_TYPE_ENTERPRISE_SNMP:
$data['total_network_modules'] = $c['modules']; $data['total_network_modules'] += $c['modules'];
break; break;
case SERVER_TYPE_PLUGIN: case SERVER_TYPE_PLUGIN:

View File

@ -99,23 +99,27 @@ function ui_print_truncate_text(
$forced_title=false $forced_title=false
) { ) {
global $config; global $config;
$truncate_at_end = false;
if (is_string($numChars)) { if (is_string($numChars)) {
switch ($numChars) { switch ($numChars) {
case 'agent_small': case 'agent_small':
$numChars = $config['agent_size_text_small']; $numChars = $config['agent_size_text_small'];
$truncate_at_end = (bool) $config['truncate_agent_at_end'];
break; break;
case 'agent_medium': case 'agent_medium':
$numChars = $config['agent_size_text_medium']; $numChars = $config['agent_size_text_medium'];
$truncate_at_end = (bool) $config['truncate_agent_at_end'];
break; break;
case 'module_small': case 'module_small':
$numChars = $config['module_size_text_small']; $numChars = $config['module_size_text_small'];
$truncate_at_end = (bool) $config['truncate_module_at_end'];
break; break;
case 'module_medium': case 'module_medium':
$numChars = $config['module_size_text_medium']; $numChars = $config['module_size_text_medium'];
$truncate_at_end = (bool) $config['truncate_module_at_end'];
break; break;
case 'description': case 'description':
@ -147,6 +151,13 @@ function ui_print_truncate_text(
// '/2' because [...] is in the middle of the word. // '/2' because [...] is in the middle of the word.
$half_length = intval(($numChars - 3) / 2); $half_length = intval(($numChars - 3) / 2);
if ($truncate_at_end === true) {
// Recover the html entities to avoid XSS attacks.
$truncateText = ($text_has_entities) ? io_safe_input(substr($text_html_decoded, 0, $numChars)) : substr($text_html_decoded, 0, $numChars);
if (strlen($text_html_decoded) > $numChars) {
$truncateText .= '...';
}
} else {
// Depending on the strange behavior of mb_strimwidth() itself, // Depending on the strange behavior of mb_strimwidth() itself,
// the 3rd parameter is not to be $numChars but the length of // the 3rd parameter is not to be $numChars but the length of
// original text (just means 'large enough'). // original text (just means 'large enough').
@ -168,6 +179,7 @@ function ui_print_truncate_text(
// Recover the html entities to avoid XSS attacks. // Recover the html entities to avoid XSS attacks.
$truncateText = ($text_has_entities) ? io_safe_input($truncateText).$suffix.io_safe_input($truncateText2) : $truncateText.$suffix.$truncateText2; $truncateText = ($text_has_entities) ? io_safe_input($truncateText).$suffix.io_safe_input($truncateText2) : $truncateText.$suffix.$truncateText2;
}
if ($showTextInTitle) { if ($showTextInTitle) {
if ($style === null) { if ($style === null) {
@ -1634,7 +1646,7 @@ function ui_format_alert_row(
$data[$index['actions']] .= '<tr class="datos2">'; $data[$index['actions']] .= '<tr class="datos2">';
$data[$index['actions']] .= '<td class="w50p">'.html_print_label_input_block( $data[$index['actions']] .= '<td class="w50p">'.html_print_label_input_block(
__('Agent'), __('Agent'),
ui_print_truncate_text($agente['alias'], 'agent_small', false, true, true, '[&hellip;]') ui_print_truncate_text($agente['alias'], 'agent_medium', false, true, true, '[&hellip;]')
).'</td>'; ).'</td>';
$data[$index['actions']] .= '<td class="w50p">'.html_print_label_input_block( $data[$index['actions']] .= '<td class="w50p">'.html_print_label_input_block(
__('Module'), __('Module'),
@ -3913,6 +3925,11 @@ function ui_print_datatable(array $parameters)
$parameters['toggle_collapsed'] = true; $parameters['toggle_collapsed'] = true;
} }
$parameters['startDisabled'] = false;
if (isset($parameters['start_disabled']) && $parameters['start_disabled'] === true) {
$parameters['startDisabled'] = true;
}
$columns_tmp = []; $columns_tmp = [];
foreach ($parameters['columns'] as $k_column => $v_column) { foreach ($parameters['columns'] as $k_column => $v_column) {
if (isset($parameters['columns'][$k_column]['text']) === true) { if (isset($parameters['columns'][$k_column]['text']) === true) {
@ -4126,7 +4143,7 @@ function ui_print_datatable(array $parameters)
// Base table. // Base table.
$table = '<table id="'.$table_id.'" '; $table = '<table id="'.$table_id.'" ';
$table .= 'class="'.$parameters['class'].'"'; $table .= 'class="invisible '.$parameters['class'].'"';
$table .= 'style="box-sizing: border-box;'.$parameters['style'].'">'; $table .= 'style="box-sizing: border-box;'.$parameters['style'].'">';
$table .= '<thead><tr class="datatables_thead_tr">'; $table .= '<thead><tr class="datatables_thead_tr">';
@ -4200,13 +4217,19 @@ function ui_print_datatable(array $parameters)
$info_msg_arr['message'] = $emptyTable; $info_msg_arr['message'] = $emptyTable;
$info_msg_arr['div_class'] = 'info_box_container invisible_important datatable-msg-info-'.$table_id; $info_msg_arr['div_class'] = 'info_box_container invisible_important datatable-msg-info-'.$table_id;
$spinner = '<div id="'.$table_id.'-spinner" class="spinner-fixed"><span></span><span></span><span></span><span></span></div>'; $info_msg_arr_filter = [];
$info_msg_arr_filter['message'] = __('Please apply a filter to display the data.');
$info_msg_arr_filter['div_class'] = 'info_box_container invisible_important datatable-msg-info-filter-'.$table_id;
$spinner = '<div id="'.$table_id.'-spinner" class="invisible spinner-fixed"><span></span><span></span><span></span><span></span></div>';
// TODO This widget should take a return: ui_print_info_message($info_msg_arr, '', true) // TODO This widget should take a return: ui_print_info_message($info_msg_arr, '', true)
$info_msg = '<div>'.ui_print_info_message($info_msg_arr).'</div>'; $info_msg = '<div>'.ui_print_info_message($info_msg_arr).'</div>';
$info_msg_filter = '<div>'.ui_print_info_message($info_msg_arr_filter, true).'</div>';
$err_msg = '<div id="error-'.$table_id.'"></div>'; $err_msg = '<div id="error-'.$table_id.'"></div>';
$output = $info_msg.$err_msg.$filter.$extra.$spinner.$table.$js; $output = $info_msg.$info_msg_filter.$err_msg.$filter.$extra.$spinner.$table.$js;
if (is_ajax() === false) { if (is_ajax() === false) {
ui_require_css_file('datatables.min', 'include/styles/js/'); ui_require_css_file('datatables.min', 'include/styles/js/');
ui_require_css_file('tables'); ui_require_css_file('tables');

View File

@ -126,6 +126,11 @@ if (typeof dt.ajax_data !== "undefined") {
ajaxData = dt.ajax_data; ajaxData = dt.ajax_data;
} }
var startDisabled = false;
if (dt.startDisabled === true) {
startDisabled = true;
}
$(document).ready(function() { $(document).ready(function() {
function checkPages() { function checkPages() {
if (dt_table.page.info().pages > 1) { if (dt_table.page.info().pages > 1) {
@ -335,7 +340,25 @@ $(document).ready(function() {
} }
$.extend(settings_datatable, ajaxOrData); $.extend(settings_datatable, ajaxOrData);
var dt_table = $(`#${dt.table_id}`).DataTable(settings_datatable);
var dt_table;
if (startDisabled === true) {
$(`.datatable-msg-info-filter-${dt.id}`)
.removeClass("invisible_important")
.show();
$(`div#${dt.id}-spinner`).hide();
$(`#${dt.table_id}`).hide();
$(`#button-form_${dt.table_id}_search_bt`).click(function() {
$(`.datatable-msg-info-filter-${dt.id}`).hide();
$(`#${dt.table_id}`).show();
dt_table = $(`#${dt.table_id}`).DataTable(settings_datatable);
});
} else {
dt_table = $(`#${dt.table_id}`).DataTable(settings_datatable);
}
$(`#button-${dt.form_id}_search_bt`).click(function() { $(`#button-${dt.form_id}_search_bt`).click(function() {
dt_table.draw().page(0); dt_table.draw().page(0);

View File

@ -663,11 +663,14 @@ class Group extends Entity
ultimo_contacto_remoto, ultimo_contacto_remoto,
fired_count fired_count
FROM tagente t FROM tagente t
LEFT JOIN tagent_secondary_group g ON g.id_agent = t.id_agente
WHERE disabled = 0 AND WHERE disabled = 0 AND
total_count <> notinit_count AND total_count <> notinit_count AND
id_grupo IN (%s) (id_grupo IN (%s) OR id_group IN (%s))
%s %s', %s %s',
implode(',', $id_groups), implode(',', $id_groups),
implode(',', $id_groups),
$order, $order,
$pagination $pagination
); );
@ -686,11 +689,13 @@ class Group extends Entity
ultimo_contacto_remoto, ultimo_contacto_remoto,
fired_count fired_count
FROM tagente t FROM tagente t
LEFT JOIN tagent_secondary_group g ON g.id_agent = t.id_agente
WHERE disabled = 0 AND WHERE disabled = 0 AND
total_count <> notinit_count AND total_count <> notinit_count AND
id_grupo IN (%s) (id_grupo IN (%s) OR id_group IN (%s))
%s', %s',
implode(',', $id_groups), implode(',', $id_groups),
implode(',', $id_groups),
$order, $order,
); );

View File

@ -4,7 +4,6 @@
.ui-dialog .ui-corner-all .ui-widget { .ui-dialog .ui-corner-all .ui-widget {
border-radius: 0; border-radius: 0;
margin: 0;
padding: 0; padding: 0;
border: none; border: none;
} }
@ -217,7 +216,7 @@ a.ui-state-default > span:hover {
color: #000; color: #000;
} }
.ui-widget-header { .ui-widget-header {
height: 20px !important; height: fit-content !important;
} }
.ui-dialog .ui-widget-header { .ui-dialog .ui-widget-header {
margin: 3px 3px 0px 3px; margin: 3px 3px 0px 3px;

View File

@ -131,7 +131,7 @@
<div style='padding-bottom: 50px'> <div style='padding-bottom: 50px'>
<?php <?php
$version = '7.0NG.773.3'; $version = '7.0NG.773.3';
$build = '230906'; $build = '230915';
$banner = "v$version Build $build"; $banner = "v$version Build $build";
error_reporting(0); error_reporting(0);

View File

@ -407,7 +407,7 @@ if ($agent_view_page === true) {
[ [
'id' => 'alerts_status_datatable', 'id' => 'alerts_status_datatable',
'class' => 'info_table', 'class' => 'info_table',
'style' => 'width: 99%;', 'style' => 'width: 100%;',
'columns' => $columns, 'columns' => $columns,
'column_names' => $column_names, 'column_names' => $column_names,
'no_sortable_columns' => $no_sortable_columns, 'no_sortable_columns' => $no_sortable_columns,
@ -439,6 +439,7 @@ if ($agent_view_page === true) {
$strict_user $strict_user
), ),
], ],
'start_disabled' => true,
] ]
); );
} }

View File

@ -154,7 +154,7 @@ if ($ag_freestring !== '' || $moduletype !== '' || $datatype !== ''
// The execution has not been done manually. // The execution has not been done manually.
$userRequest = (bool) get_parameter('uptbutton'); $userRequest = (bool) get_parameter('uptbutton');
if ($userRequest === false) { if ($userRequest === true) {
$autosearch = true; $autosearch = true;
} }
@ -2354,7 +2354,7 @@ if (empty($result) === false) {
$tablePagination = ui_pagination($count_modules, false, $offset, 0, true, 'offset', false); $tablePagination = ui_pagination($count_modules, false, $offset, 0, true, 'offset', false);
} }
} else { } else {
ui_print_info_message(['no_close' => true, 'message' => __('Sorry no search parameters')]); ui_print_info_message(['no_close' => true, 'message' => __('Please apply a filter to display the data')]);
} }
if (is_metaconsole() !== true) { if (is_metaconsole() !== true) {

View File

@ -509,10 +509,22 @@ if (is_ajax() === true) {
$tmp->evento = str_replace('"', '', io_safe_output($tmp->evento)); $tmp->evento = str_replace('"', '', io_safe_output($tmp->evento));
$event_text = $tmp->evento; $event_text = $tmp->evento;
if (strlen($tmp->evento) >= 40) {
$tmp->evento = ui_print_truncate_text( $tmp->evento = ui_print_truncate_text(
$tmp->evento, $tmp->evento,
40, $config['item_title_size_text'],
false,
true,
false,
'&hellip;',
true,
true,
);
if (empty($tmp->module_name) === false) {
$tmp->module_name = ui_print_truncate_text(
$tmp->module_name,
'module_medium',
false, false,
true, true,
false, false,
@ -523,11 +535,9 @@ if (is_ajax() === true) {
} }
if (empty($tmp->module_name) === false) { if (empty($tmp->module_name) === false) {
$tmp->module_name = io_safe_output($tmp->module_name);
if (strlen($tmp->module_name) >= 20) {
$tmp->module_name = ui_print_truncate_text( $tmp->module_name = ui_print_truncate_text(
$tmp->module_name, $tmp->module_name,
20, 'module_medium',
false, false,
true, true,
false, false,
@ -536,7 +546,6 @@ if (is_ajax() === true) {
true, true,
); );
} }
}
if (empty($tmp->comments) === false) { if (empty($tmp->comments) === false) {
$tmp->comments = ui_print_comments($tmp->comments, 20); $tmp->comments = ui_print_comments($tmp->comments, 20);
@ -564,11 +573,9 @@ if (is_ajax() === true) {
} }
} }
$tmp->agent_name = io_safe_output($tmp->agent_name);
if (strlen($tmp->agent_name) >= 10) {
$tmp->agent_name = ui_print_truncate_text( $tmp->agent_name = ui_print_truncate_text(
$tmp->agent_name, $tmp->agent_name,
10, 'agent_medium',
false, false,
true, true,
false, false,
@ -576,7 +583,6 @@ if (is_ajax() === true) {
true, true,
true, true,
); );
}
$tmp->id_extra = io_safe_output($tmp->id_extra); $tmp->id_extra = io_safe_output($tmp->id_extra);
if (strlen($tmp->id_extra) >= 10) { if (strlen($tmp->id_extra) >= 10) {
@ -944,10 +950,11 @@ if (is_ajax() === true) {
// Module name. // Module name.
$tmp->id_agentmodule = $tmp->module_name; $tmp->id_agentmodule = $tmp->module_name;
/*
if (strlen($tmp->id_agentmodule) >= 10) { if (strlen($tmp->id_agentmodule) >= 10) {
$tmp->id_agentmodule = ui_print_truncate_text( $tmp->id_agentmodule = ui_print_truncate_text(
$tmp->id_agentmodule, $tmp->id_agentmodule,
10, 'module_small',
false, false,
true, true,
false, false,
@ -955,7 +962,7 @@ if (is_ajax() === true) {
true, true,
true, true,
); );
} }*/
// Options. // Options.
// Show more. // Show more.

View File

@ -60,12 +60,29 @@ $datetime_end = strtotime($date_end.' '.$time_end);
$custom_date = get_parameter('custom_date', 0); $custom_date = get_parameter('custom_date', 0);
$date = get_parameter('date', SECONDS_1DAY); $date = get_parameter('date', SECONDS_1DAY);
$date_text = get_parameter('date_text', SECONDS_1DAY); $date_text = get_parameter('date_text', SECONDS_1DAY);
$custom_date_end = '';
$filter_type = '';
$custom_period = false;
if ($custom_date === '1') { if ($custom_date === '1') {
if ($date === 'chose_range') {
$date_init = get_parameter('date_init', 0);
$date_init = explode(' ', $date_init);
$date_init = $date_init[0];
$date_init .= ' '.get_parameter('time_init', '00:00:00');
$custom_date_end = get_parameter('date_end', 0);
$custom_date_end .= ' '.get_parameter('time_end', '00:00:00');
$date_end = date('Y/m/d H:i:s');
$period = (strtotime($date_end) - strtotime($date_init));
$custom_period = (strtotime($custom_date_end) - strtotime($date_init));
$filter_type = 'chose_range';
} else {
if ($datetime_init >= $datetime_end) { if ($datetime_init >= $datetime_end) {
$datetime_init = $date_init_less; $datetime_init = $date_init_less;
} }
$period = ($datetime_end - $datetime_init); $period = ($datetime_end - $datetime_init);
}
} else if ($custom_date === '2') { } else if ($custom_date === '2') {
$date_units = get_parameter('date_units'); $date_units = get_parameter('date_units');
$date_end = date('Y/m/d H:i:s'); $date_end = date('Y/m/d H:i:s');
@ -73,16 +90,18 @@ if ($custom_date === '1') {
$period = (strtotime($date_end) - strtotime($date_start)); $period = (strtotime($date_end) - strtotime($date_start));
} else if (in_array($date, ['this_week', 'this_month', 'past_week', 'past_month'])) { } else if (in_array($date, ['this_week', 'this_month', 'past_week', 'past_month'])) {
if ($date === 'this_week') { if ($date === 'this_week') {
$monday = date('Y/m/d', strtotime('last monday')); // Last monday.
$date_init = date('Y/m/d H:i:s', strtotime('last monday'));
$sunday = date('Y/m/d', strtotime($monday.' +6 days')); // $date_end = date('Y/m/d H:i:s', strtotime($date_init.' +6 days'));
$period = (strtotime($sunday) - strtotime($monday)); $date_end = date('Y/m/d H:i:s');
$date_init = $monday; $period = (strtotime($date_end) - strtotime($date_init));
$date_end = $sunday; $filter_type = 'this_week';
} else if ($date === 'this_month') { } else if ($date === 'this_month') {
$date_end = date('Y/m/d', strtotime('last day of this month')); // $date_end = date('Y/m/d', strtotime('last day of this month'));
$date_end = date('Y/m/d H:i:s');
$first_of_month = date('Y/m/d', strtotime('first day of this month')); $first_of_month = date('Y/m/d', strtotime('first day of this month'));
$period = (strtotime($date_end) - strtotime($first_of_month)); $period = (strtotime($date_end) - strtotime($first_of_month));
$filter_type = 'this_month';
} else if ($date === 'past_month') { } else if ($date === 'past_month') {
$date_end = date('Y/m/d', strtotime('last day of previous month')); $date_end = date('Y/m/d', strtotime('last day of previous month'));
$first_of_month = date('Y/m/d', strtotime('first day of previous month')); $first_of_month = date('Y/m/d', strtotime('first day of previous month'));
@ -197,7 +216,7 @@ if (check_acl_restricted_all($config['id_user'], $report_group, 'RW')) {
$options['view'] = [ $options['view'] = [
'active' => true, 'active' => true,
'text' => '<a href="index.php?sec=reporting&sec2=operation/reporting/reporting_viewer&id='.$id_report.'&pure='.$pure.'">'.html_print_image( 'text' => '<a href="index.php?sec=reporting&sec2=operation/reporting/reporting_viewer&id='.$id_report.'&pure='.$pure.'">'.html_print_image(
'images/eye.png', 'images/see-details@svg.svg',
true, true,
[ [
'title' => __('View report'), 'title' => __('View report'),
@ -265,10 +284,8 @@ ui_print_standard_header(
// ------------------------ INIT FORM ----------------------------------- // ------------------------ INIT FORM -----------------------------------
$table2 = new stdClass(); $table2 = new stdClass();
$table2->id = 'controls_table'; $table2->id = 'controls_table';
$table2->size[2] = '50%'; $table2->size[2] = '20%';
$table2->size[3] = '50%'; $table2->style[3] = 'position:absolute; left: auto';
$table2->style[0] = 'text-align:center';
$table2->style[1] = 'text-align:center';
$table2->styleTable = 'border:none'; $table2->styleTable = 'border:none';
if (defined('METACONSOLE')) { if (defined('METACONSOLE')) {
@ -353,13 +370,20 @@ $report = reporting_make_reporting_data(
$date_end, $date_end,
$time, $time,
$period, $period,
'dinamic' 'dinamic',
null,
null,
false,
false,
$filter_type,
$custom_date_end,
$custom_period
); );
for ($i = 0; $i < count($report['contents']); $i++) { for ($i = 0; $i < count($report['contents']); $i++) {
$report['contents'][$i]['description'] = str_replace('&#x0d;&#x0a;', '<br/>', $report['contents'][$i]['description']); $report['contents'][$i]['description'] = str_replace('&#x0d;&#x0a;', '<br/>', $report['contents'][$i]['description']);
} }
reporting_html_print_report($report, false, $config['custom_report_info']); reporting_html_print_report($report, false, $config['custom_report_info'], $custom_date_end, $custom_period);
echo '<div id="loading" class="center">'; echo '<div id="loading" class="center">';

View File

@ -15,6 +15,7 @@ global $config;
enterprise_include_once('include/functions_policies.php'); enterprise_include_once('include/functions_policies.php');
require_once $config['homedir'].'/include/functions_users.php'; require_once $config['homedir'].'/include/functions_users.php';
require_once $config['homedir'].'/include/functions_reporting.php';
$searchAgents = get_parameter('search_agents', 0); $searchAgents = get_parameter('search_agents', 0);
$stringSearchSQL = get_parameter('stringSearchSQL'); $stringSearchSQL = get_parameter('stringSearchSQL');

View File

@ -73,9 +73,10 @@ if ($config['pure']) {
} }
// Control from managent polices. // Control from managent polices.
$type = get_parameter('type', false); $type = get_parameter('moduletype', false);
$page = get_parameter('page', false); $page = get_parameter('page', false);
if (empty($page) && $type !== 'networkserver') {
if (empty($page) && $type !== 'networkserver' && $moduletype !== 2) {
// Header. // Header.
ui_print_standard_header( ui_print_standard_header(
__('SNMP Browser'), __('SNMP Browser'),

View File

@ -36,33 +36,11 @@ require_once $config['homedir'].'/include/functions_notifications.php';
$headerTitle = __('User notifications'); $headerTitle = __('User notifications');
require $config['homedir'].'/operation/users/user_edit_header.php'; require $config['homedir'].'/operation/users/user_edit_header.php';
if (get_parameter('change_label', 0)) {
$label = get_parameter('label', '');
$source = get_parameter('source', 0);
$user = get_parameter('user', '');
$value = get_parameter('value', 0) ? 1 : 0;
// Update the label value.
ob_clean();
echo json_encode(
[
'result' => notifications_set_user_label_status(
$source,
$user,
$label,
$value
),
]
);
return;
}
echo '<div id="user-notifications-wrapper" class="white_box table_div table_three_columns padding-2"> echo '<div id="user-notifications-wrapper" class="white_box table_div table_three_columns padding-2">
<div class="table_thead"> <div class="table_thead">
<div class="table_th"></div> <div class="table_th"></div>
<div class="table_th">'.__('Enable').'</div> <div class="table_th">'.__('Console notifications').'</div>
<div class="table_th">'.__('Also receive an email').'</div> <div class="table_th">'.__('E-mail notifications').'</div>
</div>'; </div>';
$sources = notifications_get_all_sources(); $sources = notifications_get_all_sources();
@ -109,13 +87,12 @@ html_print_input_hidden('id_user', $id);
event.preventDefault(); event.preventDefault();
var check = document.getElementById(event.target.id); var check = document.getElementById(event.target.id);
if (check === null) return; if (check === null) return;
var match = /notifications-user-([0-9]+)-label-(.*)/ var match = /notifications-user-([0-9]+)-label-(.*)/
.exec(event.target.id); .exec(event.target.id);
jQuery.post ("ajax.php", jQuery.post ("ajax.php",
{ {
"page" : "operation/users/user_edit_notifications", //"page" : "operation/users/user_edit_notifications",
"page" : 'include/ajax/notifications.ajax',
"change_label" : 1, "change_label" : 1,
"label" : match[2], "label" : match[2],
"source" : match[1], "source" : match[1],
@ -148,4 +125,5 @@ html_print_input_hidden('id_user', $id);
); );
} }
}()); }());
</script> </script>

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.773.3 %define version 7.0NG.773.3
%define release 230906 %define release 230915
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.773.3 %define version 7.0NG.773.3
%define release 230906 %define release 230915
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name httpd %define httpd_name httpd

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_console %define name pandorafms_console
%define version 7.0NG.773.3 %define version 7.0NG.773.3
%define release 230906 %define release 230915
%define httpd_name httpd %define httpd_name httpd
# User and Group under which Apache is running # User and Group under which Apache is running
%define httpd_name apache2 %define httpd_name apache2

View File

@ -16,7 +16,32 @@ if ($issues) {
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
} elseif (!headers_sent()) { } elseif (!headers_sent()) {
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; require_once __DIR__.'/../../include/functions_ui.php';
$url = str_replace('/var/www/html/', '', __DIR__);
$url = str_replace('/vendor/composer', '', $url);
echo '<link rel="stylesheet" type="text/css" href="include/styles/pandora.css">';
?>
<style>
body {
display: block;
}
</style>
<?php
echo '<div style="height:100%;min-height: 100%;display:flex;align-items:center;justify-content:center;background: linear-gradient(74deg, #02020255 36%, transparent 36%), url('.$url.'/../images/backgrounds/background_pandora_console_keys.jpg);">';
echo '<center><div align="middle" class="license_databox w600px pdd_10px" style="background-color: white;">';
echo '<img style="width: 600px" src="images/custom_logo/logo-default-pandorafms.png"><h2> Composer detected issues in your platform:</h2>';
echo '<div class="w90p height_100px" style="text-align:left;font-size: larger">';
echo sprintf(
'PandoraFMS requires PHP 8.0 to work properly and the version %s has been detected. Please update the PHP version of the system. More info %s. The latest version with PHP 7.4 support is PandoraFMS 767 hope LTS.',
PHP_VERSION,
'<a style="font-size: initial;" target="_blank" href="https://pandorafms.com/manual/en/documentation/07_technical_annexes/18_php_8">here</a>'
);
echo '</div></div></center></div>';
} }
} }
trigger_error( trigger_error(

View File

@ -1,5 +1,5 @@
package: pandorafms-server package: pandorafms-server
Version: 7.0NG.773.3-230906 Version: 7.0NG.773.3-230915
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="7.0NG.773.3-230906" pandora_version="7.0NG.773.3-230915"
package_cpan=0 package_cpan=0
package_pandora=1 package_pandora=1

View File

@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only # version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.773.3"; my $pandora_version = "7.0NG.773.3";
my $pandora_build = "230906"; my $pandora_build = "230915";
our $VERSION = $pandora_version." ".$pandora_build; our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash # Setup hash

View File

@ -5692,7 +5692,7 @@ sub pandora_server_statistics ($$) {
$server->{"modules_total"} = get_db_value ($dbh, "SELECT COUNT(tagent_module_inventory.id_agent_module_inventory) FROM tagente, tagent_module_inventory WHERE tagente.disabled=0 AND tagent_module_inventory.id_agente = tagente.id_agente"); $server->{"modules_total"} = get_db_value ($dbh, "SELECT COUNT(tagent_module_inventory.id_agent_module_inventory) FROM tagente, tagent_module_inventory WHERE tagente.disabled=0 AND tagent_module_inventory.id_agente = tagente.id_agente");
# Calculate lag # Calculate lag
$lag_row = get_db_single_row ($dbh, "SELECT COUNT(tagent_module_inventory.id_agent_module_inventory) AS module_lag, AVG(UNIX_TIMESTAMP() - utimestamp - tagent_module_inventory.interval) AS lag $lag_row = get_db_single_row ($dbh, "SELECT COUNT(tagent_module_inventory.id_agent_module_inventory) AS `module_lag`, AVG(UNIX_TIMESTAMP() - utimestamp - tagent_module_inventory.interval) AS `lag`
FROM tagente, tagent_module_inventory FROM tagente, tagent_module_inventory
WHERE utimestamp > 0 WHERE utimestamp > 0
AND tagent_module_inventory.id_agente = tagente.id_agente AND tagent_module_inventory.id_agente = tagente.id_agente
@ -5741,8 +5741,8 @@ sub pandora_server_statistics ($$) {
if ($server->{"server_type"} != DATASERVER){ if ($server->{"server_type"} != DATASERVER){
$lag_row = get_db_single_row ( $lag_row = get_db_single_row (
$dbh, $dbh,
"SELECT COUNT(tam.id_agente_modulo) AS module_lag, "SELECT COUNT(tam.id_agente_modulo) AS `module_lag`,
AVG(UNIX_TIMESTAMP() - tae.last_execution_try - tae.current_interval) AS lag AVG(UNIX_TIMESTAMP() - tae.last_execution_try - tae.current_interval) AS `lag`
FROM ( FROM (
SELECT tagente_estado.last_execution_try, tagente_estado.current_interval, tagente_estado.id_agente_modulo SELECT tagente_estado.last_execution_try, tagente_estado.current_interval, tagente_estado.id_agente_modulo
FROM tagente_estado FROM tagente_estado
@ -5767,8 +5767,8 @@ sub pandora_server_statistics ($$) {
else { else {
$lag_row = get_db_single_row ( $lag_row = get_db_single_row (
$dbh, $dbh,
"SELECT COUNT(tam.id_agente_modulo) AS module_lag, "SELECT COUNT(tam.id_agente_modulo) AS `module_lag`,
AVG(UNIX_TIMESTAMP() - tae.last_execution_try - tae.current_interval) AS lag AVG(UNIX_TIMESTAMP() - tae.last_execution_try - tae.current_interval) AS `lag`
FROM ( FROM (
SELECT tagente_estado.last_execution_try, tagente_estado.current_interval, tagente_estado.id_agente_modulo SELECT tagente_estado.last_execution_try, tagente_estado.current_interval, tagente_estado.id_agente_modulo
FROM tagente_estado FROM tagente_estado

View File

@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only # version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.773.3"; my $pandora_version = "7.0NG.773.3";
my $pandora_build = "230906"; my $pandora_build = "230915";
our $VERSION = $pandora_version." ".$pandora_build; our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] ); our %EXPORT_TAGS = ( 'all' => [ qw() ] );

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.773.3 %define version 7.0NG.773.3
%define release 230906 %define release 230915
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil} %global __os_install_post %{nil}
%define name pandorafms_server %define name pandorafms_server
%define version 7.0NG.773.3 %define version 7.0NG.773.3
%define release 230906 %define release 230915
Summary: Pandora FMS Server Summary: Pandora FMS Server
Name: %{name} Name: %{name}

View File

@ -9,7 +9,7 @@
# ********************************************************************** # **********************************************************************
PI_VERSION="7.0NG.773.3" PI_VERSION="7.0NG.773.3"
PI_BUILD="230906" PI_BUILD="230915"
MODE=$1 MODE=$1
if [ $# -gt 1 ]; then if [ $# -gt 1 ]; then

View File

@ -148,153 +148,3 @@ be67e5298c830c0bb582556f
b03831cce718125cb9612c07 b03831cce718125cb9612c07
5465b26fd45d86b059066cc2 5465b26fd45d86b059066cc2
5351de84d2fd638b138ba27b 5351de84d2fd638b138ba27b
6c63000157aed37fa8c0c022
8d3c18c7fbe518694c6bdb22
615ec092b6f63bb14a2bb42e
61de25cf8e12926c28aeffdc
2b96bc1c8f6f81a5437b61bf
ba1f4fcf3954e0efe5d68c83
ee5bd3e1a937b90562677f1d
0cf18ae18b0c680d00cb4d2e
abf72b0d66f90bd6e67c43c6
f263d033bb07e0b8cd405224
418ddf02720649b40db2dd67
01d1a735aa980326d385ea65
0cc3860bb0a3fd5822b25ea4
b0b89dbebfab05fafd6cf9dd
2fcbb999444db5c0c77c2ec2
f49a97b3531b8ab8d487c7a7
ffb66d5003620e2fa47ef8ea
04da742ab6c99b5c44f9f0cc
dc310a9d42d7c367671ffbf9
b0f5c4ee8d327449ef2103e6
5bd2ce604ed7c820169f0ac2
57f874a6e41baa5a1196b15f
b43142736205ad1011f4a5a6
50cf8523e5090251516eecb0
ebad61d47be209696f9d41aa
66bc5976a98266560d1867ff
3c37fc452e9ad36cd7adcb1a
4ac8c3db63a69ce883f3fcf5
6c89e2bb90b9ab95f4adde3c
917de5ece0a5ef663a8f44e7
b50eba76cf29aca3cf696d7e
74264c913ac1e141db78708a
2b6c93011f62cffb5c085886
700617c377952010272b9522
dac10c8ddf7c45e55d8028af
053328a6ff4f2773eebe76fe
2d7390260285c272688ae1e8
fa30c9ee6fb1e2f00d7ccb77
0ca6db378a05246f30c8b820
9ad6f959de166cc1475040ea
23b4702f4dfb350085e77482
4198a8ab80780c5d9b0d82d5
baebd530dfc47ac77ea42d2a
636d2ab4e018b5542e429f5e
40ae44193af360eea68b6f0b
dd47b39e494a62a4f5b6bef8
240339c9dcd159595c1edbf3
0f11840efe364ca6bbb17f43
8522e203fb4b53e2bd6d6f82
f134d9b501fa40b17993beee
d0483306f2f972aacfb4fcea
926ee4e0a80455cfee517f8b
c188a327bc66df4878cb3e8b
c874083c1d932bb4ade6d028
be2271d8da327f97e05c1c60
9ca7451d3f261682ec717547
9eb46e2a5fd072c5267d7432
41e8f3f7733f87e16b773bad
f642220cd19f84154e4dd972
fe3d9f6433883332b464b7ca
3e9648ccf60b1fa712ea8590
b7da7292e9418889bc957bd7
fb4a392d386eca19eec9215e
34188e4a6590877b2dbb67b0
e233cb364659dea13dee1fd8
757b8330465df34879414b7d
5e0f80102fee69d0742934b2
d72124afc78e9b3f91550497
21c77bfe67c6e99f73323f42
afa8ce345db6300882858f93
886cc8b32ed80f4c69edb990
64ea275ce73ef4070cefca19
c676f1ffe5bdce4e1d3643ed
baca61ab59568605e3ec8899
1610892c53a071ed02d20c75
3321fb7111d74e532932d262
29583747ac9fbf0bf21c1574
f51210b47a6e847dcfb52f94
63c95735ba96c65d2d45b23d
679c4e3acb15ebec6ecc7529
42da0760b02d50c6587a8c31
e42de775dcfcc3c950c1cff5
ae5791cf265badebd39c78d9
f66c123309525eeb81b47e92
7cddc2b9ed6b4df83c72fcbe
e69cc74632fdaa06f76f708a
7cfd19c2eeaef2c0537332be
d27cdcea69f4e49fbae06f4d
bdfaa2ec52319f0e6533e826
d59452cdfce11e21682a791f
cbb74f2d35d54557abdbc2da
369a4e6f128475bc9f87ef42
90bf992a98d0b768cbc50520
1fea663421dae7b418b9b15f
f9fc5505565c43cebc1545f9
d02a8f77fbb2b7f384a99949
279ff35e17c7f6b6a043fde7
9cf7725d3a97d9aa9e529ce6
1f465b328b349502c0953b2d
283fad60fa48ea2075a0e516
ef5d9e841a02665c54d8fa7f
b6023425cb4a1503726b3135
7fb8a1a734c24cc22a5c75eb
da38d78e83c9288e4cd60cca
2a928a6498ae8e0b29675c25
d2194ab5b0e48c2c1f213860
53acafcd86a61ce55688ebef
65608eeebc7d9fe2912635ed
fafb0273e3b04deb1edb2628
baf07d1f28416da065b6771f
c2ee8e58209102fdd0bb341c
f8e92e00670f65c29c4617c9
a83661705134029ae344176d
fc02c24e172d12a29b17eede
2632f143ffe3f64e63e4ba32
847120de4b72f59263d160f1
5be36ff5b668eb93823974b2
cdd8fe5081225519b5fc28af
53569cbaedb9265839290a6c
decca89ea0e8944fd93fcd24
4b10511d840b7f5129ed6190
5c4a1904de5f90f4d5dd749a
49c47514c3308df82fcd6b79
15af3e182c00000eea12f8e5
a9645c4a43ad211d9ae9a406
dcffa4e5eee8f966b1edcdaf
75b25f796f1e392f45c3a737
0ad5f0b96946ebcabd0457e9
2f9128177cab74e0bad61189
49ed14b81e0a166ccf335b4a
dfe100788326c45dfb84579c
2616f38caef9decae47e5023
99b2d0eb14ac19d1cfedd86e
fb1d4c42ea70fad330b5c5ee
b6c560867faa3b41b1f5d4fa
1167fb22e86098ef684eb702
a2e2c2ee8ec87d4e5d59eb22
b228beac094e16a0fa3cb528
ea0de9aad68deed0a4df3e71
e50cb420497d928ef9827800
3bb39890ca4a6da941e01782
73391f2914465c3f2335e24a
f8b2f512cc0cbc024e2cd377
4f816b0d36c934b44dbd5bc0
817edf1e2637fef229752a5f
4466f97959df7247f7410fbe
cc85c727080e9d6eb75ef513
7e27f012167ed8bedc4bd635
98a445ff41a81a0a752aff25
3b339e213dd613c4efd878c1

View File

@ -35,7 +35,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB; use PandoraFMS::DB;
# version: define current version # version: define current version
my $version = "7.0NG.773.3 Build 230906"; my $version = "7.0NG.773.3 Build 230915";
# Pandora server configuration # Pandora server configuration
my %conf; my %conf;
@ -359,7 +359,12 @@ sub pandora_purgedb ($$$) {
log_message ('!', "Cannot execute " . $conf->{'_netflow_nfexpire'} . ", skipping."); log_message ('!', "Cannot execute " . $conf->{'_netflow_nfexpire'} . ", skipping.");
} }
else { else {
`yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -r "$conf->{'_netflow_path'}" -t $conf->{'_netflow_max_lifetime'}d`; # Update stats file with max lifetime.
`yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -u "$conf->{'_netflow_path'}" -t $conf->{'_netflow_max_lifetime'}d -w 100`;
# Rescan directory.
`yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -r "$conf->{'_netflow_path'}"`;
# Expire files
`yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -e "$conf->{'_netflow_path'}"`;
} }
} }
else { else {

View File

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv; Encode::Locale::decode_argv;
# version: define current version # version: define current version
my $version = "7.0NG.773.3 Build 230906"; my $version = "7.0NG.773.3 Build 230915";
# save program name for logging # save program name for logging
my $progname = basename($0); my $progname = basename($0);