diff --git a/pandora_console/extras/mr/55.sql b/pandora_console/extras/mr/55.sql index e8815a524f..2c9b95b154 100644 --- a/pandora_console/extras/mr/55.sql +++ b/pandora_console/extras/mr/55.sql @@ -41,6 +41,15 @@ ALTER TABLE `tservice` ADD COLUMN `rca` TEXT; ALTER TABLE `tdashboard` MODIFY `name` TEXT NOT NULL DEFAULT ''; +ALTER TABLE `tevent_alert` ADD COLUMN `field1_recovery` TEXT AFTER `recovery_notify`; +ALTER TABLE `tevent_alert` ADD COLUMN `field4_recovery` TEXT AFTER `field3_recovery`; +ALTER TABLE `tevent_alert` ADD COLUMN `field5_recovery` TEXT AFTER `field4_recovery`; +ALTER TABLE `tevent_alert` ADD COLUMN `field6_recovery` TEXT AFTER `field5_recovery`; +ALTER TABLE `tevent_alert` ADD COLUMN `field7_recovery` TEXT AFTER `field6_recovery`; +ALTER TABLE `tevent_alert` ADD COLUMN `field8_recovery` TEXT AFTER `field7_recovery`; +ALTER TABLE `tevent_alert` ADD COLUMN `field9_recovery` TEXT AFTER `field8_recovery`; +ALTER TABLE `tevent_alert` ADD COLUMN `field10_recovery` TEXT AFTER `field9_recovery`; + ALTER TABLE `tagente` ADD COLUMN `satellite_server` INT NOT NULL default 0; ALTER TABLE `tmetaconsole_agent` ADD COLUMN `satellite_server` INT NOT NULL default 0; SET @st_oum763 = (SELECT IF( diff --git a/pandora_console/include/styles/alert.css b/pandora_console/include/styles/alert.css index 15f8cb367e..74820af632 100644 --- a/pandora_console/include/styles/alert.css +++ b/pandora_console/include/styles/alert.css @@ -94,6 +94,7 @@ form#advanced_filters_alert textarea { flex: 1 1 auto; height: 5em; min-height: 5em; + width: 2em; } form#advanced_filters_alert ul li label img { diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index efd75f8c42..cc7658d133 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -3019,8 +3019,16 @@ CREATE TABLE IF NOT EXISTS `tevent_alert` ( `saturday` TINYINT DEFAULT 1, `sunday` TINYINT DEFAULT 1, `recovery_notify` TINYINT DEFAULT 0, - `field2_recovery` TEXT , + `field1_recovery` TEXT, + `field2_recovery` TEXT, `field3_recovery` TEXT, + `field4_recovery` TEXT, + `field5_recovery` TEXT, + `field6_recovery` TEXT, + `field7_recovery` TEXT, + `field8_recovery` TEXT, + `field9_recovery` TEXT, + `field10_recovery` TEXT, `id_group` MEDIUMINT UNSIGNED NULL DEFAULT 0, `internal_counter` INT DEFAULT 0, `last_fired` BIGINT NOT NULL DEFAULT 0, diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index 189be884c9..58c21be09e 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -506,7 +506,7 @@ B: ########################################################################## sub pandora_evaluate_alert ($$$$$$$;$$$$) { my ($pa_config, $agent, $data, $last_status, $alert, $utimestamp, $dbh, - $last_data_value, $correlatedItems, $event, $log) = @_; + $last_data_value, $correlated_items, $event, $log) = @_; if (defined ($agent)) { logger ($pa_config, "Evaluating alert '" . safe_output($alert->{'name'}) . "' for agent '" . safe_output ($agent->{'nombre'}) . "'.", 10); @@ -604,13 +604,16 @@ sub pandora_evaluate_alert ($$$$$$$;$$$$) { # Cease on valid data $status = 3; - + + # Unlike module alerts, correlated alerts recover when they cease! + $status = 4 if ($alert->{'recovery_notify'} == 1 && !defined($alert->{'id_template_module'})); + # Always reset ($alert->{'internal_counter'}, $alert->{'times_fired'}) = (0, 0); } # Recover takes precedence over cease - $status = 4 if ($alert->{'recovery_notify'} == 1); + $status = 4 if ($alert->{'recovery_notify'} == 1 && defined ($alert->{'id_template_module'})); } elsif ($utimestamp > $limit_utimestamp && $alert->{'internal_counter'} > 0) { @@ -691,7 +694,7 @@ sub pandora_evaluate_alert ($$$$$$$;$$$$) { $pa_config, $dbh, $alert, - $correlatedItems, + $correlated_items, $event, $log ]