From 7e2fc669f7991e822365ccffc374a86c9ef8c810 Mon Sep 17 00:00:00 2001 From: alejandro-campos <alejandro.campos@artica.es> Date: Wed, 18 Nov 2020 16:48:49 +0100 Subject: [PATCH 1/2] fixed status filter when applying changes to a module of any agent --- .../godmode/massive/massive_edit_modules.php | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index 8c5a611847..c3abea586a 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -50,6 +50,7 @@ if ($update) { $agents_ = []; $force = get_parameter('force_type', false); + $module_status = get_parameter('status_module', null); if ($agents_select == false) { $agents_select = []; @@ -109,7 +110,7 @@ if ($update) { } foreach ($module_name as $mod_name) { - $result = process_manage_edit($mod_name['nombre'], $id_agent, $modules_selection_mode); + $result = process_manage_edit($mod_name['nombre'], $id_agent, $module_status, $modules_selection_mode); $count++; $success += (int) $result; } @@ -132,7 +133,7 @@ if ($update) { } foreach ($module_name as $mod_name) { - $result = process_manage_edit($mod_name['nombre'], $id_agent, $modules_selection_mode); + $result = process_manage_edit($mod_name['nombre'], $id_agent, $module_status, $modules_selection_mode); $count++; $success += (int) $result; } @@ -150,7 +151,7 @@ if ($update) { } foreach ($modules_ as $module_) { - $result = process_manage_edit($module_, $agent_, $modules_selection_mode); + $result = process_manage_edit($module_, $agent_, $module_status, $modules_selection_mode); $count++; $success += (int) $result; } @@ -1859,7 +1860,7 @@ function disabled_status () { /* ]]> */ </script> <?php -function process_manage_edit($module_name, $agents_select=null, $module_status='all') +function process_manage_edit($module_name, $agents_select=null, $module_status=null, $selection_mode='all') { if (is_int($module_name) && $module_name < 0) { ui_print_error_message(__('No modules selected')); @@ -2149,6 +2150,20 @@ function process_manage_edit($module_name, $agents_select=null, $module_status=' } foreach ($modules as $module) { + if ($module_status !== null) { + if (modules_is_not_init($module['id_agente_modulo']) === true) { + if ($module_status != AGENT_MODULE_STATUS_NO_DATA && $module_status != AGENT_MODULE_STATUS_NOT_INIT) { + continue; + } + } else { + $status = modules_get_agentmodule_status($module['id_agente_modulo']); + + if ($module_status !== $status) { + continue; + } + } + } + // Set tcp_send value according to module type since the purpose of this field in database varies in case of SNMP modules. if ($module['id_tipo_modulo'] >= 15 && $module['id_tipo_modulo'] <= 18) { if ($snmp_version != '') { From bb32f40da9901890acc637b290e52fdc5454d20c Mon Sep 17 00:00:00 2001 From: alejandro-campos <alejandro.campos@artica.es> Date: Tue, 1 Dec 2020 15:50:52 +0100 Subject: [PATCH 2/2] added filter for bulk edition and deletion of modules --- .../godmode/massive/massive_delete_modules.php | 6 +++++- pandora_console/godmode/massive/massive_edit_modules.php | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pandora_console/godmode/massive/massive_delete_modules.php b/pandora_console/godmode/massive/massive_delete_modules.php index 7d8d64141a..06f918d873 100755 --- a/pandora_console/godmode/massive/massive_delete_modules.php +++ b/pandora_console/godmode/massive/massive_delete_modules.php @@ -86,7 +86,11 @@ function process_manage_delete($module_name, $id_agents, $module_status='all') if ($selection_delete_mode == 'agents') { // We are selecting "any" module for the selecteds agents if (($module_name[0] == '0') and (is_array($module_name)) and (count($module_name) == 1)) { - $filter_for_module_deletion = false; + if ($status_module != -1) { + $filter_for_module_deletion = sprintf('tagente_modulo.id_agente_modulo IN (SELECT id_agente_modulo FROM tagente_estado where estado = %s OR utimestamp=0 )', $status_module); + } else { + $filter_for_module_deletion = false; + } } else { $filter_for_module_deletion = sprintf('tagente_modulo.nombre IN ("%s")', implode('","', $module_name)); } diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index c3abea586a..b9205c75fe 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -46,11 +46,13 @@ $update = (bool) get_parameter_post('update'); if ($update) { $agents_ = ''; + + $module_status = get_parameter('status_module'); + if ($selection_mode == 'modules') { $agents_ = []; $force = get_parameter('force_type', false); - $module_status = get_parameter('status_module', null); if ($agents_select == false) { $agents_select = []; @@ -1860,7 +1862,7 @@ function disabled_status () { /* ]]> */ </script> <?php -function process_manage_edit($module_name, $agents_select=null, $module_status=null, $selection_mode='all') +function process_manage_edit($module_name, $agents_select=null, $module_status='-1', $selection_mode='all') { if (is_int($module_name) && $module_name < 0) { ui_print_error_message(__('No modules selected')); @@ -2150,7 +2152,7 @@ function process_manage_edit($module_name, $agents_select=null, $module_status=n } foreach ($modules as $module) { - if ($module_status !== null) { + if ($module_status !== '-1') { if (modules_is_not_init($module['id_agente_modulo']) === true) { if ($module_status != AGENT_MODULE_STATUS_NO_DATA && $module_status != AGENT_MODULE_STATUS_NOT_INIT) { continue;