Server now can get the agent mode from agent

This commit is contained in:
fermin831 2016-06-02 13:07:55 +02:00
parent 4bed6c1da2
commit c24aa44ee1
3 changed files with 14 additions and 8 deletions

View File

@ -2786,12 +2786,12 @@ Create a new entry in B<tagente> optionaly with position information
=cut =cut
########################################################################## ##########################################################################
sub pandora_create_agent ($$$$$$$$$$;$$$$$$$) { sub pandora_create_agent ($$$$$$$$$$;$$$$$$$$) {
my ($pa_config, $server_name, $agent_name, $address, my ($pa_config, $server_name, $agent_name, $address,
$group_id, $parent_id, $os_id, $group_id, $parent_id, $os_id,
$description, $interval, $dbh, $timezone_offset, $description, $interval, $dbh, $timezone_offset,
$longitude, $latitude, $altitude, $position_description, $longitude, $latitude, $altitude, $position_description,
$custom_id, $url_address) = @_; $custom_id, $url_address, $agent_mode) = @_;
logger ($pa_config, "Server '$server_name' creating agent '$agent_name' address '$address'.", 10); logger ($pa_config, "Server '$server_name' creating agent '$agent_name' address '$address'.", 10);
@ -2803,6 +2803,8 @@ sub pandora_create_agent ($$$$$$$$$$;$$$$$$$) {
} }
} }
$agent_mode = 1 unless defined($agent_mode);
$description = "Created by $server_name" unless ($description ne ''); $description = "Created by $server_name" unless ($description ne '');
my ($columns, $values) = db_insert_get_values ({ 'nombre' => safe_input($agent_name), my ($columns, $values) = db_insert_get_values ({ 'nombre' => safe_input($agent_name),
'direccion' => $address, 'direccion' => $address,
@ -2812,7 +2814,7 @@ sub pandora_create_agent ($$$$$$$$$$;$$$$$$$) {
'server_name' => $server_name, 'server_name' => $server_name,
'intervalo' => $interval, 'intervalo' => $interval,
'id_parent' => $parent_id, 'id_parent' => $parent_id,
'modo' => 1, 'modo' => $agent_mode,
'custom_id' => $custom_id, 'custom_id' => $custom_id,
'url_address' => $url_address, 'url_address' => $url_address,
'timezone_offset' => $timezone_offset 'timezone_offset' => $timezone_offset

View File

@ -250,6 +250,10 @@ sub process_xml_data ($$$$$) {
} }
} }
# Get agent mode
my $agent_mode = 1; # Default value learning mode
$agent_mode = $data->{'agent_mode'} if (defined ($data->{'agent_mode'}));
# Unknown agent! # Unknown agent!
if (! defined ($agent_name) || $agent_name eq '') { if (! defined ($agent_name) || $agent_name eq '') {
logger($pa_config, "$file_name has data from an unnamed agent", 3); logger($pa_config, "$file_name has data from an unnamed agent", 3);
@ -331,7 +335,7 @@ sub process_xml_data ($$$$$) {
$description = $data->{'description'} if (defined ($data->{'description'})); $description = $data->{'description'} if (defined ($data->{'description'}));
$agent_id = pandora_create_agent($pa_config, $pa_config->{'servername'}, $agent_name, $address, $group_id, $parent_id, $os, $agent_id = pandora_create_agent($pa_config, $pa_config->{'servername'}, $agent_name, $address, $group_id, $parent_id, $os,
$description, $interval, $dbh, $timezone_offset, undef, undef, undef, undef, $custom_id, $url_address); $description, $interval, $dbh, $timezone_offset, undef, undef, undef, undef, $custom_id, $url_address, $agent_mode);
if (! defined ($agent_id)) { if (! defined ($agent_id)) {
return; return;
@ -596,8 +600,8 @@ sub process_module_data ($$$$$$$$$) {
return; return;
} }
# Is the agent learning? # Is the agent not learning?
if ($agent->{'modo'} ne '1') { if ($agent->{'modo'} == 0) {
logger($pa_config, "Learning mode disabled. Skipping module '$module_name' agent '$agent_name'.", 10); logger($pa_config, "Learning mode disabled. Skipping module '$module_name' agent '$agent_name'.", 10);
$ModuleSem->up (); $ModuleSem->up ();
return; return;
@ -697,7 +701,7 @@ sub process_module_data ($$$$$$$$$) {
} }
# Update module configuration if in learning mode and not a policy module # Update module configuration if in learning mode and not a policy module
if ($agent->{'modo'} eq '1' && $policy_linked == 0) { if ((($agent->{'modo'} eq '1') || ($agent->{'modo'} eq '2')) && $policy_linked == 0) {
update_module_configuration ($pa_config, $dbh, $module, $module_conf); update_module_configuration ($pa_config, $dbh, $module, $module_conf);
} }

View File

@ -184,7 +184,7 @@ sub data_consumer ($$) {
if ($agent_id > 0) { if ($agent_id > 0) {
# Skip if not in learning mode # Skip if not in learning mode
next if ($agent->{'modo'} != 1); next unless (($agent->{'modo'} == 1) || ($agent->{'modo'} == 2));
} }
# Get the parent host # Get the parent host