diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index 1dbc67e46f..ca6be12607 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -840,7 +840,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) { if ($alert_mode == RECOVERED_ALERT) { # Avoid the use of alias bigger than 30 characters. @actions = get_db_rows ($dbh, - 'SELECT taa.*, tac.*, tatma.id AS id_alert_templ_module_actions, + 'SELECT taa.name as action_name, taa.*, tac.*, tatma.id AS id_alert_templ_module_actions, tatma.id_alert_template_module, tatma.id_alert_action, tatma.fires_min, tatma.fires_max, tatma.module_action_threshold, tatma.last_execution FROM talert_template_module_actions tatma, talert_actions taa, talert_commands tac @@ -854,7 +854,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) { # Avoid the use of alias bigger than 30 characters. if ($forced_alert){ @actions = get_db_rows ($dbh, - 'SELECT taa.*, tac.*, tatma.id AS id_alert_templ_module_actions, + 'SELECT taa.name as action_name, taa.*, tac.*, tatma.id AS id_alert_templ_module_actions, tatma.id_alert_template_module, tatma.id_alert_action, tatma.fires_min, tatma.fires_max, tatma.module_action_threshold, tatma.last_execution FROM talert_template_module_actions tatma, talert_actions taa, talert_commands tac @@ -865,7 +865,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) { } else { @actions = get_db_rows ($dbh, - 'SELECT taa.*, tac.*, tatma.id AS id_alert_templ_module_actions, + 'SELECT taa.name as action_name, taa.*, tac.*, tatma.id AS id_alert_templ_module_actions, tatma.id_alert_template_module, tatma.id_alert_action, tatma.fires_min, tatma.fires_max, tatma.module_action_threshold, tatma.last_execution FROM talert_template_module_actions tatma, talert_actions taa, talert_commands tac @@ -881,7 +881,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) { # Get default action if ($#actions < 0) { - @actions = get_db_rows ($dbh, 'SELECT * FROM talert_actions, talert_commands + @actions = get_db_rows ($dbh, 'SELECT talert_actions.name as action_name, * FROM talert_actions, talert_commands WHERE talert_actions.id = ? AND talert_actions.id_alert_command = talert_commands.id', $alert->{'id_alert_action'}); @@ -890,7 +890,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) { # Event alert else { if ($alert_mode == RECOVERED_ALERT) { - @actions = get_db_rows ($dbh, 'SELECT * FROM tevent_alert_action, talert_actions, talert_commands + @actions = get_db_rows ($dbh, 'SELECT talert_actions.name as action_name, * FROM tevent_alert_action, talert_actions, talert_commands WHERE tevent_alert_action.id_alert_action = talert_actions.id AND talert_actions.id_alert_command = talert_commands.id AND tevent_alert_action.id_event_alert = ? @@ -898,7 +898,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) { OR ? >= fires_min)', $alert->{'id'}, $alert->{'times_fired'}); } else { - @actions = get_db_rows ($dbh, 'SELECT * FROM tevent_alert_action, talert_actions, talert_commands + @actions = get_db_rows ($dbh, 'SELECT talert_actions.name as action_name, * FROM tevent_alert_action, talert_actions, talert_commands WHERE tevent_alert_action.id_alert_action = talert_actions.id AND talert_actions.id_alert_command = talert_commands.id AND tevent_alert_action.id_event_alert = ? @@ -910,7 +910,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) { # Get default action if ($#actions < 0) { - @actions = get_db_rows ($dbh, 'SELECT * FROM talert_actions, talert_commands + @actions = get_db_rows ($dbh, 'SELECT talert_actions.name as action_name, * FROM talert_actions, talert_commands WHERE talert_actions.id = ? AND talert_actions.id_alert_command = talert_commands.id', $alert->{'id_alert_action'}); @@ -960,7 +960,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) { } pandora_execute_action ($pa_config, $data, $agent, $alert, $alert_mode, $action, $module, $dbh, $timestamp, $extra_macros); - push(@{$custom_data->{'actions'}}, safe_output($action->{'name'})); + push(@{$custom_data->{'actions'}}, safe_output($action->{'action_name'})); } else { if (defined ($module)) { logger ($pa_config, "Skipping action " . safe_output($action->{'name'}) . " for alert '" . safe_output($alert->{'name'}) . "' module '" . safe_output($module->{'nombre'}) . "'.", 10); @@ -4218,14 +4218,20 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) { } # Execute alert - my $action = get_db_single_row ($dbh, 'SELECT * + my $action = get_db_single_row ($dbh, 'SELECT talert_actions.name as action_name, * FROM talert_actions, talert_commands WHERE talert_actions.id_alert_command = talert_commands.id AND talert_actions.id = ?', $alert->{'id_alert'}); my $trap_rcv_full = $trap_oid . " " . $trap_value. " ". $trap_type. " " . $trap_custom_oid; + # Additional execution information for the console. + my $custom_data = { + 'actions' => [], + }; + pandora_execute_action ($pa_config, $trap_rcv_full, \%agent, \%alert, 1, $action, undef, $dbh, $timestamp, \%macros) if (defined ($action)); + push(@{$custom_data->{'actions'}}, safe_output($action->{'action_name'})); # Generate an event, ONLY if our alert action is different from generate an event. if ($action->{'id_alert_command'} != 3 && $alert->{'disable_event'} == 0){ @@ -4246,7 +4252,7 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) { $alert->{'id_as'}); foreach my $other_alert (@more_actions_snmp) { - my $other_action = get_db_single_row ($dbh, 'SELECT * + my $other_action = get_db_single_row ($dbh, 'SELECT talert_actions.name as action_name, * FROM talert_actions, talert_commands WHERE talert_actions.id_alert_command = talert_commands.id AND talert_actions.id = ?', $other_alert->{'alert_type'}); @@ -4287,11 +4293,30 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) { ); pandora_execute_action ($pa_config, $trap_rcv_full, \%agent, \%alert_action, 1, $other_action, undef, $dbh, $timestamp, \%macros) if (defined ($other_action)); + push(@{$custom_data->{'actions'}}, safe_output($other_action->{'action_name'})); # Generate an event, ONLY if our alert action is different from generate an event. if ($other_action->{'id_alert_command'} != 3 && $alert->{'disable_event'} == 0){ - pandora_event ($pa_config, "SNMP alert fired (" . safe_output($alert->{'description'}) . ")", - 0, 0, $alert->{'priority'}, 0, 0, 'alert_fired', 0, $dbh); + pandora_event ( + $pa_config, + "SNMP alert fired (" . safe_output($alert->{'description'}) . ")", + 0, + 0, + $alert->{'priority'}, + 0, + 0, + 'alert_fired', + 0, + $dbh, + undef, + undef, + undef, + undef, + undef, + undef, + undef,, + undef, + p_encode_json($pa_config, $custom_data)); } # Update alert status