mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-31 01:35:36 +02:00
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:
parent
853a7fdd61
commit
89ed05dd3c
@ -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>
|
2010-05-11 Sancho Lerena <slerena@artica.es>
|
||||||
|
|
||||||
* util/plugin/bgp_plugin.pl: New plugin: Connect the device via SNMP
|
* util/plugin/bgp_plugin.pl: New plugin: Connect the device via SNMP
|
||||||
|
@ -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'});
|
$module_type = get_db_value ($dbh, 'SELECT nombre FROM ttipo_modulo WHERE id_tipo = ?', $module->{'id_tipo_modulo'});
|
||||||
if (! defined ($module_type)) {
|
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);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -689,7 +689,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
|
|||||||
$agent = get_db_single_row ($dbh, 'SELECT * FROM tagente WHERE id_agente = ?', $module->{'id_agente'});
|
$agent = get_db_single_row ($dbh, 'SELECT * FROM tagente WHERE id_agente = ?', $module->{'id_agente'});
|
||||||
if (! defined ($agent)) {
|
if (! defined ($agent)) {
|
||||||
logger($pa_config, "Agent ID " . $module->{'id_agente'} . " not found while processing module '" . $module->{'nombre'} . "'.", 3);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -698,7 +698,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
|
|||||||
my $processed_data = process_data ($dataObject, $module, $module_type, $utimestamp, $dbh);
|
my $processed_data = process_data ($dataObject, $module, $module_type, $utimestamp, $dbh);
|
||||||
if (! defined ($processed_data)) {
|
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);
|
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;
|
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'});
|
my $agent_status = get_db_single_row ($dbh, 'SELECT * FROM tagente_estado WHERE id_agente_modulo = ?', $module->{'id_agente_modulo'});
|
||||||
if (! defined ($agent_status)) {
|
if (! defined ($agent_status)) {
|
||||||
logger($pa_config, "Status for agent '" . $agent->{'nombre'} . "' not found while processing module " . $module->{'nombre'} . ".", 3);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
my $last_status = $agent_status->{'last_status'};
|
my $last_status = $agent_status->{'last_status'};
|
||||||
@ -750,7 +750,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
|
|||||||
# Do we have to save module data?
|
# Do we have to save module data?
|
||||||
if ($agent_status->{'last_try'} !~ /(\d+)\-(\d+)\-(\d+) +(\d+):(\d+):(\d+)/) {
|
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);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1137,13 +1137,16 @@ Update module status on error.
|
|||||||
=cut
|
=cut
|
||||||
##########################################################################
|
##########################################################################
|
||||||
sub pandora_update_module_on_error ($$$) {
|
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
|
# Update last_execution_try
|
||||||
db_do ($dbh, 'UPDATE tagente_estado SET last_execution_try = ?
|
db_do ($dbh, 'UPDATE tagente_estado SET last_execution_try = ?, current_interval = ?
|
||||||
WHERE id_agente_modulo = ?', time (), $id_agent_module);
|
WHERE id_agente_modulo = ?', time (), $current_interval, $module->{'id_agente_modulo'});
|
||||||
}
|
}
|
||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
@ -428,7 +428,7 @@ sub exec_network_module ($$$$) {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
# Modules who cannot connect or something go bad, update last_execution_try field
|
# 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ sub data_consumer ($$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! defined $module_data || $module_data eq '') {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ sub data_consumer ($$) {
|
|||||||
# Execute command
|
# Execute command
|
||||||
my $module_data = `$wmi_command`;
|
my $module_data = `$wmi_command`;
|
||||||
if (! defined ($module_data)) {
|
if (! defined ($module_data)) {
|
||||||
pandora_update_module_on_error ($pa_config, $module_id, $dbh);
|
pandora_update_module_on_error ($pa_config, $module, $dbh);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,13 +163,13 @@ sub data_consumer ($$) {
|
|||||||
# CPU0|2
|
# CPU0|2
|
||||||
my @output = split("\n", $module_data);
|
my @output = split("\n", $module_data);
|
||||||
if ($#output < 2) {
|
if ($#output < 2) {
|
||||||
pandora_update_module_on_error ($pa_config, $module_id, $dbh);
|
pandora_update_module_on_error ($pa_config, $module, $dbh);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check for errors
|
# Check for errors
|
||||||
if ($output[0] =~ m/ERROR/) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -179,7 +179,7 @@ sub data_consumer ($$) {
|
|||||||
# Get the specified column
|
# Get the specified column
|
||||||
$module_data = $row[$module->{'tcp_port'}] if defined ($row[$module->{'tcp_port'}]);
|
$module_data = $row[$module->{'tcp_port'}] if defined ($row[$module->{'tcp_port'}]);
|
||||||
if ($module_data =~ m/^ERROR/) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user