diff --git a/pandora_console/godmode/agentes/agent_manager.php b/pandora_console/godmode/agentes/agent_manager.php
index 791f09d2ab..176551decb 100644
--- a/pandora_console/godmode/agentes/agent_manager.php
+++ b/pandora_console/godmode/agentes/agent_manager.php
@@ -515,9 +515,20 @@ $table->data[4][3] = html_print_input_text ('url_description',
$url_description, '', 45, 255, true);
$table->data[5][2] = __('Quiet');
-$table->data[5][3] = ui_print_help_tip(
- __('The agent still runs but the alerts and events will be stop'), true);
-$table->data[5][3] .= html_print_checkbox('quiet', 1, $quiet, true);
+$table->data[5][3] .= ui_print_help_tip(__('The agent still runs but the alerts and events will be stop'), true);
+$table->data[5][3] = html_print_checkbox('quiet', 1, $quiet, true);
+
+$cps_array[-1] = __('Disabled');
+if($cps > 0){
+ $cps_array[$cps] = __('Enabled');
+}
+else{
+ $cps_array[0] = __('Enabled');
+}
+
+$table->data[6][0] = __('Cascade protection services');
+$table->data[6][0] .= ui_print_help_tip(__('Disable the alerts and events of the elements that belong to this service'), true);
+$table->data[6][1] = html_print_select($cps_array, 'cps', $cps, '', '', 0, true);
ui_toggle(html_print_table ($table, true), __('Advanced options'));
unset($table);
diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php
index 02fa58e597..98901feaaf 100644
--- a/pandora_console/godmode/agentes/configurar_agente.php
+++ b/pandora_console/godmode/agentes/configurar_agente.php
@@ -84,6 +84,7 @@ $direccion_agente = io_safe_input($direccion_agente);
$intervalo = SECONDS_5MINUTES;
$ff_interval = 0;
$quiet_module = 0;
+$cps_module = 0;
$id_server = "";
$max_alerts = 0;
$modo = 1;
@@ -148,6 +149,7 @@ $tab_description = '';
$url_description = '';
$quiet = 0;
$macros = '';
+$cps = 0;
$create_agent = (bool)get_parameter('create_agent');
$module_macros = array ();
@@ -161,7 +163,7 @@ if ($create_agent) {
//safe_output only validate ip
$direccion_agente = trim(io_safe_output($direccion_agente));
-
+
if(!validate_address($direccion_agente)){
$mssg_warning = 1;
}
@@ -187,11 +189,12 @@ if ($create_agent) {
$update_gis_data = (int) get_parameter_post("update_gis_data", 0);
$url_description = (string) get_parameter("url_description");
$quiet = (int) get_parameter("quiet", 0);
-
+ $cps = (int) get_parameter("cps", 0);
+
$fields = db_get_all_fields_in_table('tagent_custom_fields');
-
+
if ($fields === false) $fields = array();
-
+
$field_values = array();
foreach ($fields as $field) {
@@ -216,8 +219,10 @@ if ($create_agent) {
}
if(!$exists_alias){
- $id_agente = db_process_sql_insert ('tagente',
- array ('nombre' => $nombre_agente,
+ $id_agente = db_process_sql_insert (
+ 'tagente',
+ array (
+ 'nombre' => $nombre_agente,
'alias' => $alias,
'alias_as_name' => $alias_as_name,
'direccion' => $direccion_agente,
@@ -235,7 +240,10 @@ if ($create_agent) {
'icon_path' => $icon_path,
'update_gis_data' => $update_gis_data,
'url_address' => $url_description,
- 'quiet' => $quiet));
+ 'quiet' => $quiet,
+ 'cps' => $cps
+ )
+ );
enterprise_hook ('update_agent', array ($id_agente));
}
else{
@@ -253,19 +261,19 @@ if ($create_agent) {
if ( $direccion_agente != '') {
agents_add_address ($id_agente, $direccion_agente);
}
-
+
$agent_created_ok = true;
-
+
$tpolicy_group_old = db_get_all_rows_sql("SELECT id_policy FROM tpolicy_groups
WHERE id_group = ".$grupo);
-
+
if($tpolicy_group_old){
foreach ($tpolicy_group_old as $key => $old_group) {
db_process_sql_insert ('tpolicy_agents',
array('id_policy' => $old_group['id_policy'], 'id_agent' => $id_agente));
}
}
-
+
$info = '{"Name":"' . $nombre_agente .'",
"IP":"' . $direccion_agente .'",
"Group":"' . $grupo .'",
@@ -282,8 +290,9 @@ if ($create_agent) {
"Icon path":"' . $icon_path .'",
"Update GIS data":"' . $update_gis_data .'",
"Url description":"' . $url_description .'",
- "Quiet":"' . (int)$quiet.'"}';
-
+ "Quiet":"' . (int)$quiet.'",
+ "Cps":"' . (int)$cps.'"}';
+
$unsafe_alias = io_safe_output($alias);
db_pandora_audit("Agent management",
"Created agent $unsafe_alias", false, true, $info);
@@ -743,6 +752,7 @@ if ($update_agent) { // if modified some agent paramenter
$update_gis_data = (int) get_parameter_post("update_gis_data", 0);
$url_description = (string) get_parameter("url_description");
$quiet = (int) get_parameter("quiet", 0);
+ $cps = (int) get_parameter("cps", 0);
$old_interval = db_get_value('intervalo', 'tagente', 'id_agente', $id_agente);
$fields = db_get_all_fields_in_table('tagent_custom_fields');
@@ -794,47 +804,49 @@ if ($update_agent) { // if modified some agent paramenter
$direccion_agente != agents_get_address ($id_agente)) {
agents_add_address ($id_agente, $direccion_agente);
}
-
+
$action_delete_ip = (bool)get_parameter('delete_ip', false);
//If IP is set for deletion, delete first
if ($action_delete_ip) {
$delete_ip = get_parameter_post ("address_list");
-
+
$direccion_agente = agents_delete_address($id_agente, $delete_ip);
}
-
- $values = array ('disabled' => $disabled,
- 'id_parent' => $id_parent,
- 'id_os' => $id_os,
- 'modo' => $modo,
- 'alias' => $alias,
- 'alias_as_name' => $alias_as_name,
- 'direccion' => $direccion_agente,
- 'id_grupo' => $grupo,
- 'intervalo' => $intervalo,
- 'comentarios' => $comentarios,
- 'cascade_protection' => $cascade_protection,
- 'cascade_protection_module' => $cascade_protection_module,
- 'server_name' => $server_name,
- 'custom_id' => $custom_id,
- 'icon_path' => $icon_path,
- 'update_gis_data' => $update_gis_data,
- 'url_address' => $url_description,
- 'url_address' => $url_description,
- 'quiet' => $quiet,
- 'safe_mode_module' => $safe_mode_module);
-
+
+ $values = array (
+ 'disabled' => $disabled,
+ 'id_parent' => $id_parent,
+ 'id_os' => $id_os,
+ 'modo' => $modo,
+ 'alias' => $alias,
+ 'alias_as_name' => $alias_as_name,
+ 'direccion' => $direccion_agente,
+ 'id_grupo' => $grupo,
+ 'intervalo' => $intervalo,
+ 'comentarios' => $comentarios,
+ 'cascade_protection' => $cascade_protection,
+ 'cascade_protection_module' => $cascade_protection_module,
+ 'server_name' => $server_name,
+ 'custom_id' => $custom_id,
+ 'icon_path' => $icon_path,
+ 'update_gis_data' => $update_gis_data,
+ 'url_address' => $url_description,
+ 'url_address' => $url_description,
+ 'quiet' => $quiet,
+ 'cps' => $cps,
+ 'safe_mode_module' => $safe_mode_module
+ );
+
if ($config['metaconsole_agent_cache'] == 1) {
$values['update_module_count'] = 1; // Force an update of the agent cache.
}
-
+
$group_old = db_get_sql("SELECT id_grupo FROM tagente WHERE id_agente =" .$id_agente);
$tpolicy_group_old = db_get_all_rows_sql("SELECT id_policy FROM tpolicy_groups
WHERE id_group = ".$group_old);
-
+
$result = db_process_sql_update ('tagente', $values, array ('id_agente' => $id_agente));
-
-
+
if ($result == false && $update_custom_result == false) {
ui_print_error_message(
__('There was a problem updating the agent'));
@@ -868,7 +880,7 @@ if ($update_agent) { // if modified some agent paramenter
foreach ($tpolicy_group as $key => $value) {
$tpolicy_agents= db_get_sql("SELECT * FROM tpolicy_agents
WHERE id_policy = ".$value['id_policy'] . " AND id_agent =" .$id_agente);
-
+
if(!$tpolicy_agents){
db_process_sql_insert ('tpolicy_agents',
array('id_policy' => $value['id_policy'], 'id_agent' => $id_agente));
@@ -879,7 +891,7 @@ if ($update_agent) { // if modified some agent paramenter
}
}
}
-
+
$info = '{
"id_agente":"' . $id_agente . '",
"alias":"' . $alias . '",
@@ -897,8 +909,9 @@ if ($update_agent) { // if modified some agent paramenter
"Icon Path":"' . $icon_path . '",
"Update GIS data":"' .$update_gis_data .'",
"Url description":"' . $url_description .'",
- "Quiet":"' . (int)$quiet.'"}';
-
+ "Quiet":"' . (int)$quiet.'",
+ "Cps":"' . (int)$cps.'"}';
+
enterprise_hook ('update_agent', array ($id_agente));
ui_print_success_message (__('Successfully updated'));
db_pandora_audit("Agent management",
@@ -918,14 +931,14 @@ if ($id_agente) {
require ("general/noaccess.php");
exit;
}
-
+
$agent = db_get_row ('tagente', 'id_agente', $id_agente);
if (empty ($agent)) {
//Close out the page
ui_print_error_message (__('There was a problem loading the agent'));
return;
}
-
+
$intervalo = $agent["intervalo"]; // Define interval in seconds
$nombre_agente = $agent["nombre"];
if(empty($alias)){
@@ -951,6 +964,7 @@ if ($id_agente) {
$update_gis_data = $agent["update_gis_data"];
$url_description = $agent["url_address"];
$quiet = $agent["quiet"];
+ $cps = $agent["cps"];
$safe_mode_module = $agent["safe_mode_module"];
$safe_mode = ($safe_mode_module) ? 1 : 0;
}
@@ -967,7 +981,7 @@ $edit_module = (bool) get_parameter ('edit_module');
// GET DATA for MODULE UPDATE OR MODULE INSERT
if ($update_module || $create_module) {
$id_grupo = agents_get_agent_group ($id_agente);
-
+
$id_agent_module = (int) get_parameter ('id_agent_module');
if (!check_acl ($config["id_user"], $id_grupo, "AW")) {
@@ -1001,6 +1015,7 @@ if ($update_module || $create_module) {
$interval = (int) get_parameter ('module_interval', $intervalo);
$ff_interval = (int) get_parameter ('module_ff_interval');
$quiet_module = (int) get_parameter ('quiet_module');
+ $cps_module = (int) get_parameter ('cps_module');
$id_plugin = (int) get_parameter ('id_plugin');
$id_export = (int) get_parameter ('id_export');
$disabled = (bool) get_parameter ('disabled');
@@ -1318,6 +1333,7 @@ if ($update_module) {
'unit' => io_safe_output($unit),
'macros' => $macros,
'quiet' => $quiet_module,
+ 'cps' => $cps_module,
'critical_instructions' => $critical_instructions,
'warning_instructions' => $warning_instructions,
'unknown_instructions' => $unknown_instructions,
@@ -1362,8 +1378,8 @@ if ($update_module) {
}
else {
$check_dynamic =
- db_get_row_sql('SELECT dynamic_interval, dynamic_max, dynamic_min, dynamic_two_tailed
- FROM tagente_modulo WHERE id_agente_modulo =' . $id_agent_module);
+ db_get_row_sql('SELECT dynamic_interval, dynamic_max, dynamic_min, dynamic_two_tailed
+ FROM tagente_modulo WHERE id_agente_modulo =' . $id_agent_module);
if( ($check_dynamic['dynamic_interval'] == $dynamic_interval) &&
($check_dynamic['dynamic_max'] == $dynamic_max) &&
@@ -1500,6 +1516,7 @@ if ($create_module) {
'unit' => io_safe_output($unit),
'macros' => $macros,
'quiet' => $quiet_module,
+ 'cps' => $cps_module,
'critical_instructions' => $critical_instructions,
'warning_instructions' => $warning_instructions,
'unknown_instructions' => $unknown_instructions,
diff --git a/pandora_console/godmode/agentes/module_manager_editor.php b/pandora_console/godmode/agentes/module_manager_editor.php
index 4efa2767ba..ae5b405519 100644
--- a/pandora_console/godmode/agentes/module_manager_editor.php
+++ b/pandora_console/godmode/agentes/module_manager_editor.php
@@ -162,6 +162,7 @@ if ($id_agent_module) {
}
$ff_interval = $module['module_ff_interval'];
$quiet_module = $module['quiet'];
+ $cps_module = $module['cps'];
$unit = $module['unit'];
$tcp_port = $module['tcp_port'];
$tcp_send = $module['tcp_send'];
@@ -302,6 +303,7 @@ else {
$max = '';
$interval = '';
$quiet_module = 0;
+ $cps_module = 0;
$unit = '';
$prediction_module = '';
$custom_integer_1 = 0;
diff --git a/pandora_console/godmode/agentes/module_manager_editor_common.php b/pandora_console/godmode/agentes/module_manager_editor_common.php
index 040ad8a307..7c09f2ead4 100644
--- a/pandora_console/godmode/agentes/module_manager_editor_common.php
+++ b/pandora_console/godmode/agentes/module_manager_editor_common.php
@@ -566,11 +566,20 @@ if ($__code_from == 'modules') {
}
$table_advanced->data[7][0] = __('Quiet');
-$table_advanced->data[7][0] .= ui_print_help_tip(
- __('The module still stores data but the alerts and events will be stop'), true);
-$table_advanced->colspan[7][1] = 7;
-$table_advanced->data[7][1] = html_print_checkbox('quiet_module', 1,
- $quiet_module, true, $disabledBecauseInPolicy);
+$table_advanced->data[7][0] .= ui_print_help_tip(__('The module still stores data but the alerts and events will be stop'), true);
+$table_advanced->data[7][1] = html_print_checkbox('quiet_module', 1, $quiet_module, true, $disabledBecauseInPolicy);
+
+$cps_array[-1] = __('Disabled');
+if($cps > 0){
+ $cps_array[$cps_module] = __('Enabled');
+}
+else{
+ $cps_array[0] = __('Enabled');
+}
+$table_advanced->data[7][2] = __('Cascade Protection Services');
+$table_advanced->data[7][2] .= ui_print_help_tip(__('Disable the alerts and events of the elements that belong to this service'), true);
+$table_advanced->colspan[7][3] = 5;
+$table_advanced->data[7][3] = html_print_select($cps_array, 'cps_module', $cps_module, '', '', 0, true, false, true, "", $disabledBecauseInPolicy);
$table_advanced->data[8][0] = __('Critical instructions') .
ui_print_help_tip(__("Instructions when the status is critical"), true);
diff --git a/pandora_console/godmode/massive/massive_edit_agents.php b/pandora_console/godmode/massive/massive_edit_agents.php
index 849101f169..26a6aff734 100755
--- a/pandora_console/godmode/massive/massive_edit_agents.php
+++ b/pandora_console/godmode/massive/massive_edit_agents.php
@@ -82,6 +82,8 @@ if ($update_agents) {
$values['delete_conf'] = get_parameter('delete_conf');
if (get_parameter('quiet_select', -1) != -1)
$values['quiet'] = get_parameter('quiet_select');
+ if (get_parameter('cps_select', -2) != -2)
+ $values['cps'] = get_parameter('cps_select');
$fields = db_get_all_fields_in_table('tagent_custom_fields');
@@ -392,6 +394,7 @@ $update_gis_data = -1;
$cascade_protection = -1;
$cascade_protection_module = -1;
$quiet_select = -1;
+$cps_select = -2;
$table = new StdClass();
$table->width = '100%';
@@ -479,6 +482,19 @@ $table->data[6][1] = html_print_select(array(-1 => __('No change'),
1 => __('Yes'), 0 => __('No')),
"quiet_select", $quiet_select, "", '', 0, true);
+$cps_array[-2] = __('No change');
+$cps_array[-1] = __('Disabled');
+if($cps > 0){
+ $cps_array[$cps_select] = __('Enabled');
+}
+else{
+ $cps_array[0] = __('Enabled');
+}
+
+$table->data[7][0] = __('Cascade Protection Service');
+$table->data[7][0] .= ui_print_help_tip(__('Disable the alerts and events of the elements that belong to this service'), true);
+$table->data[7][1] = html_print_select($cps_array, "cps_select", $cps_select, "", '', 0, true);
+
ui_toggle(html_print_table ($table, true), __('Advanced options'));
unset($table);
diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php
index a7c8626fce..dfb601545d 100755
--- a/pandora_console/godmode/massive/massive_edit_modules.php
+++ b/pandora_console/godmode/massive/massive_edit_modules.php
@@ -635,21 +635,34 @@ $table->data['edit11'][0] .= ui_print_help_tip(__('The module still store data b
$table->data['edit11'][1] = html_print_select(array(-1 => __('No change'),
1 => __('Yes'), 0 => __('No')),
"quiet_select", -1, "", '', 0, true);
-$table->data['edit11'][2] = __('Timeout');
-$table->data['edit11'][3] = html_print_input_text(
+
+$cps_array[-2] = __('No change');
+$cps_array[-1] = __('Disabled');
+if($cps > 0){
+ $cps_array[$cps_select] = __('Enabled');
+}
+else{
+ $cps_array[0] = __('Enabled');
+}
+
+$table->data['edit11'][2] = __('Cascade Protection Service');
+$table->data['edit11'][2] .= ui_print_help_tip(__('Disable the alerts and events of the elements that belong to this service'), true);
+$table->data['edit11'][3] .= html_print_select($cps_array, "cps_select", -1, "", '', 0, true);
+
+$table->data['edit16'][0] = __('Timeout');
+$table->data['edit16'][1] .= html_print_input_text(
'max_timeout', '', '', 5, 10, true) . ' ' .
ui_print_help_tip (
__('Seconds that agent will wait for the execution of the module.'), true);
-
-$table->data['edit16'][0] = __('Retries');
-$table->data['edit16'][1] = html_print_input_text ('max_retries', '', '', 5, 10, true) . ' ' .
+
+$table->data['edit16'][1] .= __('Retries');
+$table->data['edit16'][1] .= html_print_input_text ('max_retries', '', '', 5, 10, true) . ' ' .
ui_print_help_tip (
__('Number of retries that the module will attempt to run.'), true);
-
-
- $table->data['edit22'][0] = __('Web checks').ui_print_help_icon ("web_checks", true);;
- $table->data['edit22'][1] = '';
-
+
+$table->data['edit22'][0] = __('Web checks').ui_print_help_icon ("web_checks", true);;
+$table->data['edit22'][1] = '';
+
$table->data['edit16'][2] = __('Port');
$table->data['edit16'][3] = html_print_input_text ('tcp_port', '', '', 5, 20, true);
@@ -1491,7 +1504,7 @@ function process_manage_edit ($module_name, $agents_select = null, $module_statu
$values['custom_string_2'] = io_input_password($snmp3_privacy_pass);
}
}
-
+
$throw_unknown_events = get_parameter('throw_unknown_events', '');
if ($throw_unknown_events !== '') {
//Set the event type that can show.
@@ -1499,24 +1512,27 @@ function process_manage_edit ($module_name, $agents_select = null, $module_statu
EVENTS_GOING_UNKNOWN => (int)$throw_unknown_events);
$values['disabled_types_event'] = json_encode($disabled_types_event);
}
-
-
+
if (strlen(get_parameter('history_data')) > 0) {
$values['history_data'] = get_parameter('history_data');
}
-
+
if (get_parameter('quiet_select', -1) != -1) {
$values['quiet'] = get_parameter('quiet_select');
}
-
+
+ if (get_parameter('cps_select', -2) != -2) {
+ $values['cps'] = get_parameter('cps_select');
+ }
+
$filter_modules = false;
-
+
if (!is_numeric($module_name) or ($module_name != 0))
$filter_modules['nombre'] = $module_name;
-
+
// Whether to update module tag info
$update_tags = get_parameter('id_tag', false);
-
+
if (array_search(0, $agents_select) !== false) {
//Apply at All agents.
$modules = db_get_all_rows_filter ('tagente_modulo',