2009-08-04 Ramon Novoa <rnovoa@artica.es>

* lib/PandoraFMS/Core.pm,
          lib/PandoraFMS/ReconServer.pm,
          lib/PandoraFMS/DataServer.pm: Set group, description and post_process
          when auto-creating an agent/module.




git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1828 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
Ramon Novoa 2009-08-04 16:19:15 +00:00
parent e2d27b8131
commit c193f88af3
4 changed files with 33 additions and 12 deletions

View File

@ -1,3 +1,10 @@
2009-08-04 Ramon Novoa <rnovoa@artica.es>
* lib/PandoraFMS/Core.pm,
lib/PandoraFMS/ReconServer.pm,
lib/PandoraFMS/DataServer.pm: Set group, description and post_process
when auto-creating an agent/module.
2009-08-03 Ramon Novoa <rnovoa@artica.es> 2009-08-03 Ramon Novoa <rnovoa@artica.es>
* lib/PandoraFMS/Core.pm: Add id_agente to tagente_estado when * lib/PandoraFMS/Core.pm: Add id_agente to tagente_estado when

View File

@ -709,17 +709,18 @@ sub pandora_audit ($$$$$) {
# Create a new entry in tagente_modulo and the corresponding entry in # Create a new entry in tagente_modulo and the corresponding entry in
# tagente_estado. # tagente_estado.
########################################################################## ##########################################################################
sub pandora_create_module ($$$$$$$$) { sub pandora_create_module ($$$$$$$$$) {
my ($agent_id, $module_type_id, $module_name, $max, my ($agent_id, $module_type_id, $module_name, $max,
$min, $description, $interval, $dbh) = @_; $min, $post_process, $description, $interval, $dbh) = @_;
# Provide some default values # Provide some default values
$max = 0 if ($max eq ''); $max = 0 if ($max eq '');
$min = 0 if ($min eq ''); $min = 0 if ($min eq '');
$post_process = 0 if ($post_process eq '');
$description = 'N/A' if ($description eq ''); $description = 'N/A' if ($description eq '');
my $module_id = db_insert($dbh, 'INSERT INTO tagente_modulo (`id_agente`, `id_tipo_modulo`, `nombre`, `max`, `min`, `descripcion`, `module_interval`, `id_modulo`) my $module_id = db_insert($dbh, 'INSERT INTO tagente_modulo (`id_agente`, `id_tipo_modulo`, `nombre`, `max`, `min`, `post_process`, `descripcion`, `module_interval`, `id_modulo`)
VALUES (?, ?, ?, ?, ?, ?, ?, 1)', $agent_id, $module_type_id, $module_name, $max, $min, $description, $interval); VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)', $agent_id, $module_type_id, $module_name, $max, $min, $post_process, $description, $interval);
db_do ($dbh, 'INSERT INTO tagente_estado (`id_agente_modulo`, `id_agente`, `last_try`) VALUES (?, ?, \'0000-00-00 00:00:00\')', $module_id, $agent_id); db_do ($dbh, 'INSERT INTO tagente_estado (`id_agente_modulo`, `id_agente`, `last_try`) VALUES (?, ?, \'0000-00-00 00:00:00\')', $module_id, $agent_id);
return $module_id; return $module_id;
} }
@ -727,14 +728,16 @@ sub pandora_create_module ($$$$$$$$) {
########################################################################## ##########################################################################
# Create a new entry in tagente. # Create a new entry in tagente.
########################################################################## ##########################################################################
sub pandora_create_agent ($$$$$$$$$) { sub pandora_create_agent ($$$$$$$$$$) {
my ($pa_config, $server_name, $agent_name, $address, my ($pa_config, $server_name, $agent_name, $address,
$address_id, $group_id, $parent_id, $os_id, $dbh) = @_; $address_id, $group_id, $parent_id, $os_id,
$description, $dbh) = @_;
logger ($pa_config, "$server_name: Creating agent $agent_name ($address)", 1); logger ($pa_config, "$server_name: Creating agent $agent_name ($address)", 1);
$description = "Created by $server_name" unless ($description ne '');
my $agent_id = db_insert ($dbh, 'INSERT INTO tagente (`nombre`, `direccion`, `comentarios`, `id_grupo`, `id_os`, `server_name`, `intervalo`, `id_parent`, `modo`) my $agent_id = db_insert ($dbh, 'INSERT INTO tagente (`nombre`, `direccion`, `comentarios`, `id_grupo`, `id_os`, `server_name`, `intervalo`, `id_parent`, `modo`)
VALUES (?, ?, ?, ?, ?, ?, 300, ?, 1)', $agent_name, $address, "Created by $server_name", $group_id, $os_id, $server_name, $parent_id); VALUES (?, ?, ?, ?, ?, ?, 300, ?, 1)', $agent_name, $address, $description, $group_id, $os_id, $server_name, $parent_id);
pandora_event ($pa_config, "Agent '$agent_name' created by $server_name", $pa_config->{'autocreate_group'}, $agent_id, 2, 0, 0, 'new_agent', $dbh); pandora_event ($pa_config, "Agent '$agent_name' created by $server_name", $pa_config->{'autocreate_group'}, $agent_id, 2, 0, 0, 'new_agent', $dbh);
return $agent_id; return $agent_id;

View File

@ -173,9 +173,16 @@ sub process_xml_data ($$$$) {
return; return;
} }
# Create the agent # Get OS, group and description
my $os = pandora_get_os ($data->{'os'}); my $os = pandora_get_os ($data->{'os'});
$agent_id = pandora_create_agent ($pa_config, $pa_config->{'servername'}, $agent_name, '', 0, $pa_config->{'autocreate_group'}, 0, $os, $dbh); my $group_id = undef;
$group_id = get_db_value ($dbh, 'SELECT id_grupo FROM tgrupo WHERE nombre = ?', $data->{'group'}) if (defined ($data->{'group'}));
$group_id = $pa_config->{'autocreate_group'} unless defined ($group_id);
my $description = '';
$description = $data->{'description'} if (defined ($data->{'description'}));
# Create the agent
$agent_id = pandora_create_agent ($pa_config, $pa_config->{'servername'}, $agent_name, '', 0, $group_id, 0, $os, $description, $dbh);
return unless defined ($agent_id); return unless defined ($agent_id);
} }
@ -246,14 +253,18 @@ sub process_module_data ($$$$$$$$$) {
my $module_id = get_module_id ($dbh, $module_type); my $module_id = get_module_id ($dbh, $module_type);
return unless ($module_id > 0); return unless ($module_id > 0);
# Get min/max/description # Get min/max/description/post process
my $max = get_tag_value ($data, 'max', 0); my $max = get_tag_value ($data, 'max', 0);
my $min = get_tag_value ($data, 'min', 0); my $min = get_tag_value ($data, 'min', 0);
my $description = get_tag_value ($data, 'description', ''); my $description = get_tag_value ($data, 'description', '');
my $post_process = get_tag_value ($data, 'post_process', 0);
# Allow , as a decimal separator
$post_process =~ s/,/./;
# Create the module # Create the module
pandora_create_module ($agent->{'id_agente'}, $module_id, $module_name, pandora_create_module ($agent->{'id_agente'}, $module_id, $module_name,
$max, $min, $description, $interval, $dbh); $max, $min, $post_process, $description, $interval, $dbh);
$module = get_db_single_row ($dbh, 'SELECT * FROM tagente_modulo WHERE id_agente = ? AND nombre = ?', $agent->{'id_agente'}, $module_name); $module = get_db_single_row ($dbh, 'SELECT * FROM tagente_modulo WHERE id_agente = ? AND nombre = ?', $agent->{'id_agente'}, $module_name);
return unless defined $module; return unless defined $module;
} }

View File

@ -174,7 +174,7 @@ sub data_consumer ($$) {
# Crate a new agent # Crate a new agent
my $agent_id = pandora_create_agent ($pa_config, $pa_config->{'servername'}, my $agent_id = pandora_create_agent ($pa_config, $pa_config->{'servername'},
$host_name, $addr, $addr_id, $host_name, $addr, $addr_id,
$task->{'id_group'}, $parent_id, $id_os, $dbh); $task->{'id_group'}, $parent_id, $id_os, '', $dbh);
# Assign the new address to the agent # Assign the new address to the agent
db_insert ($dbh, 'INSERT INTO taddress_agent (`id_a`, `id_agent`) db_insert ($dbh, 'INSERT INTO taddress_agent (`id_a`, `id_agent`)
VALUES (?, ?)', $addr_id, $agent_id); VALUES (?, ?)', $addr_id, $agent_id);