diff --git a/pandora_server/ChangeLog b/pandora_server/ChangeLog index 5ca5104c4a..4c98321228 100644 --- a/pandora_server/ChangeLog +++ b/pandora_server/ChangeLog @@ -1,3 +1,8 @@ +2010-10-06 Ramon Novoa + + * lib/PandoraFMS/Core.pm: Retrieve agent information before the module + type. Fixes bug #3080827. + 2010-09-27 Junichi Satoh * FreeBSD/pandora_server, FreeBSD/tentacle_server: Fixed a typo. diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index f97fa5a8e6..1798393b5f 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -691,16 +691,6 @@ sub pandora_process_module ($$$$$$$$$;$) { logger($pa_config, "Processing module '" . $module->{'nombre'} . "' for agent " . (defined ($agent) && $agent ne '' ? "'" . $agent->{'nombre'} . "'" : 'ID ' . $module->{'id_agente'}) . ".", 10); - # Get module type - if (! defined ($module_type) || $module_type eq '') { - $module_type = get_db_value ($dbh, 'SELECT nombre FROM ttipo_modulo WHERE id_tipo = ?', $module->{'id_tipo_modulo'}); - if (! defined ($module_type)) { - logger($pa_config, "Invalid module type ID " . $module->{'id_tipo_modulo'} . " module '" . $module->{'nombre'} . "' agent " . (defined ($agent) ? "'" . $agent->{'nombre'} . "'" : 'ID ' . $module->{'id_agente'}) . ".", 10); - pandora_update_module_on_error ($pa_config, $module, $dbh); - return; - } - } - # Get agent information if (! defined ($agent) || $agent eq '') { $agent = get_db_single_row ($dbh, 'SELECT * FROM tagente WHERE id_agente = ?', $module->{'id_agente'}); @@ -711,6 +701,16 @@ sub pandora_process_module ($$$$$$$$$;$) { } } + # Get module type + if (! defined ($module_type) || $module_type eq '') { + $module_type = get_db_value ($dbh, 'SELECT nombre FROM ttipo_modulo WHERE id_tipo = ?', $module->{'id_tipo_modulo'}); + if (! defined ($module_type)) { + logger($pa_config, "Invalid module type ID " . $module->{'id_tipo_modulo'} . " module '" . $module->{'nombre'} . "' agent " . (defined ($agent) ? "'" . $agent->{'nombre'} . "'" : 'ID ' . $module->{'id_agente'}) . ".", 10); + pandora_update_module_on_error ($pa_config, $module, $dbh); + return; + } + } + # Process data my $processed_data = process_data ($data_object, $module, $module_type, $utimestamp, $dbh); if (! defined ($processed_data)) {