From 67d6c4b894819991ea7f60fd98217b5370c53714 Mon Sep 17 00:00:00 2001 From: Ramon Novoa Date: Mon, 17 Sep 2012 14:29:45 +0000 Subject: [PATCH] 2012-09-17 Ramon Novoa * include/javascript/pandora_modules.js, include/functions_network_components.php, pandoradb.sql, extensions/plugin_registration.php, operation/agentes/status_monitor.php, godmode/agentes/agent_template.php, godmode/agentes/module_manager_editor_common.php, godmode/agentes/module_manager.php, godmode/agentes/configurar_agente.php, godmode/agentes/module_manager_editor.php, godmode/massive/massive_edit_modules.php, godmode/modules/manage_network_components_form.php, godmode/modules/manage_network_components_form_common.php, godmode/modules/manage_network_components.php: Added inverse intervals for warning and critical limits. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6977 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_console/ChangeLog | 18 ++++++++++++++++++ .../extensions/plugin_registration.php | 2 ++ .../godmode/agentes/agent_template.php | 4 +++- .../godmode/agentes/configurar_agente.php | 10 ++++++++-- .../godmode/agentes/module_manager.php | 2 +- .../godmode/agentes/module_manager_editor.php | 5 +++++ .../agentes/module_manager_editor_common.php | 10 ++++++---- .../godmode/massive/massive_edit_modules.php | 7 ++++++- .../modules/manage_network_components.php | 14 +++++++++++--- .../modules/manage_network_components_form.php | 8 ++++++-- .../manage_network_components_form_common.php | 5 +++++ .../include/functions_network_components.php | 7 ++++++- .../include/javascript/pandora_modules.js | 10 ++++++++-- .../operation/agentes/status_monitor.php | 2 ++ pandora_console/pandoradb.sql | 4 ++++ 15 files changed, 91 insertions(+), 17 deletions(-) diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index 94308cde06..ae99797032 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,21 @@ +2012-09-17 Ramon Novoa + + * include/javascript/pandora_modules.js, + include/functions_network_components.php, + pandoradb.sql, + extensions/plugin_registration.php, + operation/agentes/status_monitor.php, + godmode/agentes/agent_template.php, + godmode/agentes/module_manager_editor_common.php, + godmode/agentes/module_manager.php, + godmode/agentes/configurar_agente.php, + godmode/agentes/module_manager_editor.php, + godmode/massive/massive_edit_modules.php, + godmode/modules/manage_network_components_form.php, + godmode/modules/manage_network_components_form_common.php, + godmode/modules/manage_network_components.php: Added inverse intervals for + warning and critical limits. + 2012-09-14 Miguel de Dios * include/javascript/pandora.js, diff --git a/pandora_console/extensions/plugin_registration.php b/pandora_console/extensions/plugin_registration.php index 3f3d311342..0ceb2844af 100644 --- a/pandora_console/extensions/plugin_registration.php +++ b/pandora_console/extensions/plugin_registration.php @@ -173,6 +173,8 @@ function pluginreg_extension_main () { 'str_critical' => isset($ini_array[$label]["str_critical"]) ? $ini_array[$label]["str_critical"] : '', 'min_ff_event' => isset($ini_array[$label]["min_ff_event"]) ? $ini_array[$label]["min_ff_event"] : '', 'tcp_port' => isset($ini_array[$label]["tcp_port"]) ? $ini_array[$label]["tcp_port"] : '', + 'critical_inverse' => isset($ini_array[$label]["critical_inverse"]) ? $ini_array[$label]["critical_inverse"] : '', + 'warning_inverse' => isset($ini_array[$label]["warning_inverse"]) ? $ini_array[$label]["warning_inverse"] : '', 'id_plugin' => $create_id); db_process_sql_insert('tnetwork_component', $values); diff --git a/pandora_console/godmode/agentes/agent_template.php b/pandora_console/godmode/agentes/agent_template.php index a3200ded6b..32a59e9cf4 100644 --- a/pandora_console/godmode/agentes/agent_template.php +++ b/pandora_console/godmode/agentes/agent_template.php @@ -85,7 +85,9 @@ if (isset ($_POST["template_id"])) { 'str_warning' => $row2['str_warning'], 'min_critical' => $row2['min_critical'], 'max_critical' => $row2['max_critical'], - 'str_critical' => $row2['str_critical'] + 'str_critical' => $row2['str_critical'], + 'critical_inverse' => $row2['critical_inverse'], + 'warning_inverse' => $row2['warning_inverse'], ); $id_agente_modulo = db_process_sql_insert('tagente_modulo', $values); diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php index b248e226de..74c1cc79a2 100644 --- a/pandora_console/godmode/agentes/configurar_agente.php +++ b/pandora_console/godmode/agentes/configurar_agente.php @@ -785,6 +785,8 @@ if ($update_module || $create_module) { $critical_instructions = (string) get_parameter('critical_instructions'); $warning_instructions = (string) get_parameter('warning_instructions'); $unknown_instructions = (string) get_parameter('unknown_instructions'); + $critical_inverse = (int) get_parameter('critical_inverse'); + $warning_inverse = (int) get_parameter('warning_inverse'); if ($prediction_module != 3) { unset($serialize_ops); @@ -847,7 +849,9 @@ if ($update_module) { 'quiet' => $quiet_module, 'critical_instructions' => $critical_instructions, 'warning_instructions' => $warning_instructions, - 'unknown_instructions' => $unknown_instructions); + 'unknown_instructions' => $unknown_instructions, + 'critical_inverse' => $critical_inverse, + 'warning_inverse' => $warning_inverse); if ($prediction_module == 3 && $serialize_ops == '') { $result = false; @@ -959,7 +963,9 @@ if ($create_module) { 'quiet' => $quiet_module, 'critical_instructions' => $critical_instructions, 'warning_instructions' => $warning_instructions, - 'unknown_instructions' => $unknown_instructions); + 'unknown_instructions' => $unknown_instructions, + 'critical_inverse' => $critical_inverse, + 'warning_inverse' => $warning_inverse); if ($prediction_module == 3 && $serialize_ops == '') { $id_agent_module = false; diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php index 797a84f4d3..35aa3a7ce0 100644 --- a/pandora_console/godmode/agentes/module_manager.php +++ b/pandora_console/godmode/agentes/module_manager.php @@ -350,7 +350,7 @@ $params = implode(',', array ('id_agente_modulo', 'id_tipo_modulo', 'descripcion', 'nombre', 'max', 'min', 'module_interval', 'id_modulo', 'id_module_group', 'disabled','max_warning', 'min_warning', 'str_warning', 'max_critical', 'min_critical', - 'str_critical', 'quiet')); + 'str_critical', 'quiet', 'critical_inverse', 'warning_inverse')); $where = sprintf("delete_pending = 0 AND id_agente = %s", $id_agente); diff --git a/pandora_console/godmode/agentes/module_manager_editor.php b/pandora_console/godmode/agentes/module_manager_editor.php index f00816e391..f92750c436 100644 --- a/pandora_console/godmode/agentes/module_manager_editor.php +++ b/pandora_console/godmode/agentes/module_manager_editor.php @@ -206,6 +206,9 @@ if ($id_agent_module) { $warning_instructions = $module['warning_instructions']; $unknown_instructions = $module['unknown_instructions']; + $critical_inverse = $module['critical_inverse']; + $warning_inverse = $module['warning_inverse']; + } else { if (!isset ($moduletype)) { @@ -263,6 +266,8 @@ else { $warning_instructions = ''; $unknown_instructions = ''; + $critical_inverse = ''; + $warning_inverse = ''; } } diff --git a/pandora_console/godmode/agentes/module_manager_editor_common.php b/pandora_console/godmode/agentes/module_manager_editor_common.php index d94ecd39a7..05caeaf170 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_common.php +++ b/pandora_console/godmode/agentes/module_manager_editor_common.php @@ -227,8 +227,9 @@ $table_simple->data[2][1] .= '
'.__('Max.').''; $table_simple->data[2][1] .= html_print_input_text ('max_warning', $max_warning, '', 10, 255, true, $disabledBecauseInPolicy); $table_simple->data[2][1] .= '
'.__('Str.').''; -$table_simple->data[2][1] .= html_print_input_text ('str_warning', $str_warning, - '', 10, 255, true, $disabledBecauseInPolicy); +$table_simple->data[2][1] .= html_print_input_text ('str_warning', $str_warning, '', 10, 255, true, $disabledBecauseInPolicy); +$table_simple->data[2][1] .= '
'.__('Inverse interval').''; +$table_simple->data[2][1] .= html_print_checkbox ("warning_inverse", 1, $warning_inverse, true); $table_simple->data[2][2] = __('Critical status').' ' . ui_print_help_icon ('critical_status', true); $table_simple->data[2][3] = ''.__('Min. ').''; $table_simple->data[2][3] .= html_print_input_text ('min_critical', $min_critical, @@ -237,8 +238,9 @@ $table_simple->data[2][3] .= '
'.__('Max.').''; $table_simple->data[2][3] .= html_print_input_text ('max_critical', $max_critical, '', 10, 255, true, $disabledBecauseInPolicy); $table_simple->data[2][3] .= '
'.__('Str.').''; -$table_simple->data[2][3] .= html_print_input_text ('str_critical', $str_critical, - '', 10, 255, true, $disabledBecauseInPolicy); +$table_simple->data[2][3] .= html_print_input_text ('str_critical', $str_critical, '', 10, 255, true, $disabledBecauseInPolicy); +$table_simple->data[2][3] .= '
'.__('Inverse interval').''; +$table_simple->data[2][3] .= html_print_checkbox ("critical_inverse", 1, $critical_inverse, true); /* FF stands for Flip-flop */ $table_simple->data[3][0] = __('FF threshold').' ' . ui_print_help_icon ('ff_threshold', true); diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index e884203b1e..058a762f51 100644 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -275,6 +275,9 @@ $table->data['edit1'][1] .= '
'.__('Max.').''; $table->data['edit1'][1] .= html_print_input_text ('max_warning', '', '', 5, 15, true); $table->data['edit1'][1] .= '
'.__('Str.').''; $table->data['edit1'][1] .= html_print_input_text ('str_warning', '', '', 5, 15, true); +$table->data['edit1'][1] .= '
'.__('Inverse interval').''; +$table->data['edit1'][1] .= html_print_checkbox ("warning_inverse", 1, $warning_inverse, true); + $table->data['edit1'][2] = __('Critical status'); $table->data['edit1'][3] = ''.__('Min.').''; $table->data['edit1'][3] .= html_print_input_text ('min_critical', '', '', 5, 15, true); @@ -282,6 +285,8 @@ $table->data['edit1'][3] .= '
'.__('Max.').''; $table->data['edit1'][3] .= html_print_input_text ('max_critical', '', '', 5, 15, true); $table->data['edit1'][3] .= '
'.__('Str.').''; $table->data['edit1'][3] .= html_print_input_text ('str_critical', '', '', 5, 15, true); +$table->data['edit1'][3] .= '
'.__('Inverse interval').''; +$table->data['edit1'][3] .= html_print_checkbox ("critical_inverse", 1, $critical_inverse, true); $table->data['edit2'][0] = __('Interval'); $table->data['edit2'][1] = html_print_extended_select_for_time ('module_interval', 0, '', __('No change'), '0', 10, true, 'width: 150px'); @@ -574,7 +579,7 @@ function process_manage_edit ($module_name, $agents_select = null) { /* List of fields which can be updated */ $fields = array ('min_warning', 'max_warning', 'str_warning', 'min_critical', 'max_critical', 'str_critical', 'min_ff_event', 'module_interval', 'disabled', 'post_process', 'unit', 'snmp_community', 'tcp_send', 'custom_string_1', 'plugin_parameter', - 'custom_string_2', 'custom_string_3', 'min', 'max', 'id_module_group', 'plugin_user', 'plugin_pass', 'id_export', 'history_data'); + 'custom_string_2', 'custom_string_3', 'min', 'max', 'id_module_group', 'plugin_user', 'plugin_pass', 'id_export', 'history_data', 'critical_inverse', 'warning_inverse'); $values = array (); // Specific snmp reused fields diff --git a/pandora_console/godmode/modules/manage_network_components.php b/pandora_console/godmode/modules/manage_network_components.php index dff9b419f5..3379a4dae4 100644 --- a/pandora_console/godmode/modules/manage_network_components.php +++ b/pandora_console/godmode/modules/manage_network_components.php @@ -78,6 +78,8 @@ $only_metaconsole = get_parameter ('only_metaconsole'); $critical_instructions = (string) get_parameter('critical_instructions'); $warning_instructions = (string) get_parameter('warning_instructions'); $unknown_instructions = (string) get_parameter('unknown_instructions'); +$critical_inverse = (int) get_parameter('critical_inverse'); +$warning_inverse = (int) get_parameter('warning_inverse'); $snmp_version = (string) get_parameter('snmp_version'); $snmp3_auth_user = (string) get_parameter('snmp3_auth_user'); @@ -167,7 +169,9 @@ if ($create_component) { 'macros' => $macros, 'critical_instructions' => $critical_instructions, 'warning_instructions' => $warning_instructions, - 'unknown_instructions' => $unknown_instructions)); + 'unknown_instructions' => $unknown_instructions, + 'critical_inverse' => $critical_inverse, + 'warning_inverse' => $warning_inverse)); } else { $id = ''; @@ -242,7 +246,9 @@ if ($update_component) { 'macros' => $macros, 'critical_instructions' => $critical_instructions, 'warning_instructions' => $warning_instructions, - 'unknown_instructions' => $unknown_instructions)); + 'unknown_instructions' => $unknown_instructions, + 'critical_inverse' => $critical_inverse, + 'warning_inverse' => $warning_inverse)); } else { $result = ''; @@ -355,7 +361,9 @@ $url = ui_get_url_refresh (array ('offset' => false, 'id_component_type' => false, 'critical_instructions' => false, 'warning_instructions' => false, - 'unknown_instructions' => false)); + 'unknown_instructions' => false, + 'critical_inverse' => false, + 'warning_inverse' => false)); $search_id_group = (int) get_parameter ('search_id_group'); diff --git a/pandora_console/godmode/modules/manage_network_components_form.php b/pandora_console/godmode/modules/manage_network_components_form.php index 8ba5ddfaf2..34457377a8 100644 --- a/pandora_console/godmode/modules/manage_network_components_form.php +++ b/pandora_console/godmode/modules/manage_network_components_form.php @@ -63,7 +63,8 @@ if ($create_network_from_module) { $critical_instructions = $data_module["critical_instructions"]; $warning_instructions = $data_module["warning_instructions"]; $unknown_instructions = $data_module["unknown_instructions"]; - + $critical_inverse = $data_module["critical_inverse"]; + $warning_inverse = $data_module["warning_inverse"]; } $id_component_type = (int) get_parameter ('id_component_type'); @@ -109,7 +110,8 @@ if (isset ($id)) { $critical_instructions = $component["critical_instructions"]; $warning_instructions = $component["warning_instructions"]; $unknown_instructions = $component["unknown_instructions"]; - + $critical_inverse = $component["critical_inverse"]; + $warning_inverse = $component["warning_inverse"]; if ($type >= 15 && $type <= 18) { // New support for snmp v3 @@ -154,6 +156,8 @@ if (isset ($id)) { $critical_instructions = ''; $warning_instructions = ''; $unknown_instructions = ''; + $critical_inverse = 0; + $warning_inverse = 0; $snmp_version = 1; $snmp3_auth_user = ''; diff --git a/pandora_console/godmode/modules/manage_network_components_form_common.php b/pandora_console/godmode/modules/manage_network_components_form_common.php index eeb343e2e9..ff50b05c15 100644 --- a/pandora_console/godmode/modules/manage_network_components_form_common.php +++ b/pandora_console/godmode/modules/manage_network_components_form_common.php @@ -93,6 +93,9 @@ $table->data[3][1] .= html_print_input_text ('max_warning', $max_warning, $table->data[3][1] .= '
'.__('Str.').''; $table->data[3][1] .= html_print_input_text ('str_warning', $str_warning, '', 5, 15, true); +$table->data[3][1] .= '
'.__('Inverse interval').''; +$table->data[3][1] .= html_print_checkbox ("warning_inverse", 1, $warning_inverse, true); + $table->data[3][2] = __('Critical status'); $table->data[3][3] = ''.__('Min.').''; $table->data[3][3] .= html_print_input_text ('min_critical', $min_critical, @@ -103,6 +106,8 @@ $table->data[3][3] .= html_print_input_text ('max_critical', $max_critical, $table->data[3][3] .= '
'.__('Str.').''; $table->data[3][3] .= html_print_input_text ('str_critical', $str_critical, '', 5, 15, true); +$table->data[3][3] .= '
'.__('Inverse interval').''; +$table->data[3][3] .= html_print_checkbox ("critical_inverse", 1, $critical_inverse, true); $table->data[4][0] = __('FF threshold') . ' ' . ui_print_help_icon ('ff_threshold', true); $table->data[4][1] = html_print_input_text ('ff_event', $ff_event, diff --git a/pandora_console/include/functions_network_components.php b/pandora_console/include/functions_network_components.php index 5ccfacffd7..2ca9b4aade 100644 --- a/pandora_console/include/functions_network_components.php +++ b/pandora_console/include/functions_network_components.php @@ -339,7 +339,10 @@ function network_components_create_module_from_network_component ($id_network_co 'min_critical', 'max_critical', 'str_critical', - 'min_ff_event')); + 'min_ff_event', + 'critical_inverse', + 'warning_inverse', + )); if (empty ($component)) return false; $values = $component; @@ -402,6 +405,8 @@ function network_components_duplicate_network_component ($id_local_component) { $networkCopy['max_critical'] = $network['max_critical']; $networkCopy['str_critical'] = $network['str_critical']; $networkCopy['min_ff_event'] = $network['min_ff_event']; + $networkCopy['critical_inverse'] = $network['critical_inverse']; + $networkCopy['warning_inverse'] = $network['warning_inverse']; return network_components_create_network_component ($name, $network['type'], $network['id_group'], $networkCopy); } diff --git a/pandora_console/include/javascript/pandora_modules.js b/pandora_console/include/javascript/pandora_modules.js index 8b45fdd372..ca152e083d 100644 --- a/pandora_console/include/javascript/pandora_modules.js +++ b/pandora_console/include/javascript/pandora_modules.js @@ -84,6 +84,8 @@ function configure_modules_form () { $("#text-ff_event").attr ("value", 0); $("#text-post_process").attr("value", 0); $("#text-unit").attr("value", ''); + $("#text-critical_inverse").attr ("value", 0); + $("#text-warning_inverse").attr ("value", 0); } $("#local_component").change (function () { @@ -125,8 +127,10 @@ function configure_modules_form () { $("#text-max_critical").attr ("value", (data["max_critical"] == 0) ? 0 : data["max_critical"]); $("#text-str_critical").attr ("value", (data["str_critical"] == 0) ? 0 : data["str_critical"]); $("#text-ff_event").attr ("value", (data["min_ff_event"] == 0) ? 0 : data["min_ff_event"]); - $("#text-post_process").attr("value", (data["post_process"] == 0) ? 0 : data["post_process"]) + $("#text-post_process").attr("value", (data["post_process"] == 0) ? 0 : data["post_process"]); $("#text-unit").attr("value", (data["unit"] == '') ? '' : data["unit"]) + $("#text-critical_inverse").attr ("value", (data["critical_inverse"] == 0) ? 0 : data["critical_inverse"]); + $("#text-warning_inverse").attr ("value", (data["warning_inverse"] == 0) ? 0 : data["warning_inverse"]); $("#component_loading").hide (); $("#id_module_type").change (); @@ -244,8 +248,10 @@ function configure_modules_form () { $("#text-max_critical").attr ("value", (data["max_critical"] == 0) ? 0 : data["max_critical"]); $("#text-str_critical").attr ("value", (data["str_critical"] == 0) ? 0 : data["str_critical"]); $("#text-ff_event").attr ("value", (data["min_ff_event"] == 0) ? 0 : data["min_ff_event"]); - $("#text-post_process").attr("value", (data["post_process"] == 0) ? 0 : data["post_process"]) + $("#text-post_process").attr("value", (data["post_process"] == 0) ? 0 : data["post_process"]); $("#text-unit").attr("value", (data["unit"] == '') ? '' : data["unit"]) + $("#text-critical_inverse").attr ("value", (data["critical_inverse"] == 0) ? 0 : data["critical_inverse"]); + $("#text-warning_inverse").attr ("value", (data["warning_inverse"] == 0) ? 0 : data["warning_inverse"]); $("#component_loading").hide (); $("#id_module_type").change (); diff --git a/pandora_console/operation/agentes/status_monitor.php b/pandora_console/operation/agentes/status_monitor.php index 78ef2cd4dc..f1f49d0a0d 100644 --- a/pandora_console/operation/agentes/status_monitor.php +++ b/pandora_console/operation/agentes/status_monitor.php @@ -402,6 +402,8 @@ switch ($config["dbtype"]) { tagente_modulo.max_critical, tagente_modulo.str_critical, tagente_modulo.extended_info, + tagente_modulo.critical_inverse, + tagente_modulo.warning_inverse, tagente_estado.utimestamp AS utimestamp".$sql.") ORDER BY " . $order['field'] . " " . $order['order'] . " LIMIT ".$offset.",".$config["block_size"]; break; diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index 69b3751050..f1c0779418 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -221,6 +221,8 @@ CREATE TABLE IF NOT EXISTS `tagente_modulo` ( `warning_instructions` text NOT NULL default '', `unknown_instructions` text NOT NULL default '', `quiet` tinyint(1) NOT NULL default '0', + `critical_inverse` tinyint(1) unsigned default '0', + `warning_inverse` tinyint(1) unsigned default '0', PRIMARY KEY (`id_agente_modulo`), KEY `main_idx` (`id_agente_modulo`,`id_agente`), KEY `tam_agente` (`id_agente`), @@ -660,6 +662,8 @@ CREATE TABLE IF NOT EXISTS `tnetwork_component` ( `critical_instructions` text NOT NULL default '', `warning_instructions` text NOT NULL default '', `unknown_instructions` text NOT NULL default '', + `critical_inverse` tinyint(1) unsigned default '0', + `warning_inverse` tinyint(1) unsigned default '0', PRIMARY KEY (`id_nc`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;