From 67d6c4b894819991ea7f60fd98217b5370c53714 Mon Sep 17 00:00:00 2001
From: Ramon Novoa <rnovoa@artica.es>
Date: Mon, 17 Sep 2012 14:29:45 +0000
Subject: [PATCH] 2012-09-17  Ramon Novoa  <rnovoa@artica.es>

	* 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  <rnovoa@artica.es>
+
+	* 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 <miguel.dedios@artica.es>
 
 	* 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] .= '<br /><em>'.__('Max.').'</em>';
 $table_simple->data[2][1] .= html_print_input_text ('max_warning', $max_warning,
 	'', 10, 255, true, $disabledBecauseInPolicy);
 $table_simple->data[2][1] .= '<br /><em>'.__('Str.').'</em>';
-$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] .= '<br /><em>'.__('Inverse interval').'</em>';
+$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] = '<em>'.__('Min. ').'</em>';
 $table_simple->data[2][3] .= html_print_input_text ('min_critical', $min_critical,
@@ -237,8 +238,9 @@ $table_simple->data[2][3] .= '<br /><em>'.__('Max.').'</em>';
 $table_simple->data[2][3] .= html_print_input_text ('max_critical', $max_critical,
 	'', 10, 255, true, $disabledBecauseInPolicy);
 $table_simple->data[2][3] .= '<br /><em>'.__('Str.').'</em>';
-$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] .= '<br /><em>'.__('Inverse interval').'</em>';
+$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] .= '<br /><em>'.__('Max.').'</em>';
 $table->data['edit1'][1] .= html_print_input_text ('max_warning', '', '', 5, 15, true);
 $table->data['edit1'][1] .= '<br /><em>'.__('Str.').'</em>';
 $table->data['edit1'][1] .= html_print_input_text ('str_warning', '', '', 5, 15, true);
+$table->data['edit1'][1] .= '<br /><em>'.__('Inverse interval').'</em>';
+$table->data['edit1'][1] .= html_print_checkbox ("warning_inverse", 1, $warning_inverse, true);
+
 $table->data['edit1'][2] = __('Critical status');
 $table->data['edit1'][3] = '<em>'.__('Min.').'</em>';
 $table->data['edit1'][3] .= html_print_input_text ('min_critical', '', '', 5, 15, true);
@@ -282,6 +285,8 @@ $table->data['edit1'][3] .= '<br /><em>'.__('Max.').'</em>';
 $table->data['edit1'][3] .= html_print_input_text ('max_critical', '', '', 5, 15, true);
 $table->data['edit1'][3] .= '<br /><em>'.__('Str.').'</em>';
 $table->data['edit1'][3] .= html_print_input_text ('str_critical', '', '', 5, 15, true);
+$table->data['edit1'][3] .= '<br /><em>'.__('Inverse interval').'</em>';
+$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] .= '<br /><em>'.__('Str.').'</em>';
 $table->data[3][1] .= html_print_input_text ('str_warning', $str_warning,
 	'', 5, 15, true);
+$table->data[3][1] .= '<br /><em>'.__('Inverse interval').'</em>';
+$table->data[3][1] .= html_print_checkbox ("warning_inverse", 1, $warning_inverse, true);
+
 $table->data[3][2] = __('Critical status');
 $table->data[3][3] = '<em>'.__('Min.').'</em>';
 $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] .= '<br /><em>'.__('Str.').'</em>';
 $table->data[3][3] .= html_print_input_text ('str_critical', $str_critical,
 	'', 5, 15, true);
+$table->data[3][3] .= '<br /><em>'.__('Inverse interval').'</em>';
+$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;