2010-05-11 Ramon Novoa <rnovoa@artica.es>

* lib/PandoraFMS/PluginServer.pm, lib/PandoraFMS/Core.pm,
          lib/PandoraFMS/NetworkServer.pm, lib/PandoraFMS/WMIServer.pm: Fixed
          bug #2941736. Made pandora_update_module_on_error set
          tagente_estado.current_interval.




git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2697 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
Ramon Novoa 2010-05-11 16:23:41 +00:00
parent 1c0c23f5f0
commit b7ef0afb7f
5 changed files with 25 additions and 15 deletions

View File

@ -1,3 +1,10 @@
2010-05-11 Ramon Novoa <rnovoa@artica.es>
* lib/PandoraFMS/PluginServer.pm, lib/PandoraFMS/Core.pm,
lib/PandoraFMS/NetworkServer.pm, lib/PandoraFMS/WMIServer.pm: Fixed
bug #2941736. Made pandora_update_module_on_error set
tagente_estado.current_interval.
2010-05-11 Sancho Lerena <slerena@artica.es>
* util/plugin/bgp_plugin.pl: New plugin: Connect the device via SNMP

View File

@ -679,7 +679,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
$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->{'id_agente_modulo'}, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}
}
@ -689,7 +689,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
$agent = get_db_single_row ($dbh, 'SELECT * FROM tagente WHERE id_agente = ?', $module->{'id_agente'});
if (! defined ($agent)) {
logger($pa_config, "Agent ID " . $module->{'id_agente'} . " not found while processing module '" . $module->{'nombre'} . "'.", 3);
pandora_update_module_on_error ($pa_config, $module->{'id_agente_modulo'}, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}
}
@ -698,7 +698,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
my $processed_data = process_data ($dataObject, $module, $module_type, $utimestamp, $dbh);
if (! defined ($processed_data)) {
logger($pa_config, "Received invalid data '" . $dataObject . "' from agent '" . $agent->{'nombre'} . "' module '" . $module->{'nombre'} . "' agent " . (defined ($agent) ? "'" . $agent->{'nombre'} . "'" : 'ID ' . $module->{'id_agente'}) . ".", 3);
pandora_update_module_on_error ($pa_config, $module->{'id_agente_modulo'}, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}
@ -711,7 +711,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
my $agent_status = get_db_single_row ($dbh, 'SELECT * FROM tagente_estado WHERE id_agente_modulo = ?', $module->{'id_agente_modulo'});
if (! defined ($agent_status)) {
logger($pa_config, "Status for agent '" . $agent->{'nombre'} . "' not found while processing module " . $module->{'nombre'} . ".", 3);
pandora_update_module_on_error ($pa_config, $module->{'id_agente_modulo'}, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}
my $last_status = $agent_status->{'last_status'};
@ -750,7 +750,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
# Do we have to save module data?
if ($agent_status->{'last_try'} !~ /(\d+)\-(\d+)\-(\d+) +(\d+):(\d+):(\d+)/) {
logger($pa_config, "Invalid last try timestamp '" . $agent_status->{'last_try'} . "' for agent '" . $agent->{'nombre'} . "' not found while processing module '" . $module->{'nombre'} . "'.", 3);
pandora_update_module_on_error ($pa_config, $module->{'id_agente_modulo'}, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}
@ -1137,13 +1137,16 @@ Update module status on error.
=cut
##########################################################################
sub pandora_update_module_on_error ($$$) {
my ($pa_config, $id_agent_module, $dbh) = @_;
my ($pa_config, $module, $dbh) = @_;
logger($pa_config, "Updating module ID $id_agent_module on error.", 10);
# Set tagente_estado.current_interval to make sure it is not 0
my $current_interval = ($module->{'module_interval'} == 0 ? 300 : $module->{'module_interval'});
logger($pa_config, "Updating module " . $module->{'nombre'} . " (ID " . $module->{'id_agente_modulo'} . ") on error.", 10);
# Update last_execution_try
db_do ($dbh, 'UPDATE tagente_estado SET last_execution_try = ?
WHERE id_agente_modulo = ?', time (), $id_agent_module);
db_do ($dbh, 'UPDATE tagente_estado SET last_execution_try = ?, current_interval = ?
WHERE id_agente_modulo = ?', time (), $current_interval, $module->{'id_agente_modulo'});
}
##########################################################################

View File

@ -428,7 +428,7 @@ sub exec_network_module ($$$$) {
} else {
# Modules who cannot connect or something go bad, update last_execution_try field
pandora_update_module_on_error ($pa_config, $id_agente_modulo, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
}
}

View File

@ -201,7 +201,7 @@ sub data_consumer ($$) {
}
if (! defined $module_data || $module_data eq '') {
pandora_update_module_on_error ($pa_config, $module_id, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}

View File

@ -153,7 +153,7 @@ sub data_consumer ($$) {
# Execute command
my $module_data = `$wmi_command`;
if (! defined ($module_data)) {
pandora_update_module_on_error ($pa_config, $module_id, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}
@ -163,13 +163,13 @@ sub data_consumer ($$) {
# CPU0|2
my @output = split("\n", $module_data);
if ($#output < 2) {
pandora_update_module_on_error ($pa_config, $module_id, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}
# Check for errors
if ($output[0] =~ m/ERROR/) {
pandora_update_module_on_error ($pa_config, $module_id, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}
@ -179,7 +179,7 @@ sub data_consumer ($$) {
# Get the specified column
$module_data = $row[$module->{'tcp_port'}] if defined ($row[$module->{'tcp_port'}]);
if ($module_data =~ m/^ERROR/) {
pandora_update_module_on_error ($pa_config, $module_id, $dbh);
pandora_update_module_on_error ($pa_config, $module, $dbh);
return;
}