From 7fd3cc44581311ad56f9feb443dd9be1a76be9dd Mon Sep 17 00:00:00 2001 From: Ramon Novoa Date: Tue, 3 May 2011 14:24:51 +0000 Subject: [PATCH] 2011-05-03 Ramon Novoa * lib/PandoraFMS/DB.pm, lib/PandoraFMS/DataServer.pm: Check that a group exists before auto-creating an agent. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4297 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_server/ChangeLog | 5 +++++ pandora_server/lib/PandoraFMS/DB.pm | 2 +- pandora_server/lib/PandoraFMS/DataServer.pm | 14 +++++++++++--- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/pandora_server/ChangeLog b/pandora_server/ChangeLog index 12ba4ad2ff..06fb2c7ba2 100644 --- a/pandora_server/ChangeLog +++ b/pandora_server/ChangeLog @@ -1,3 +1,8 @@ +2011-05-03 Ramon Novoa + + * lib/PandoraFMS/DB.pm, lib/PandoraFMS/DataServer.pm: Check that a group + exists before auto-creating an agent. + 2011-04-29 Miguel de Dios * util/pandora_xml_stress.pl: added the generate scatter and curve data diff --git a/pandora_server/lib/PandoraFMS/DB.pm b/pandora_server/lib/PandoraFMS/DB.pm index 4461f0b4be..0e5ff5ba92 100644 --- a/pandora_server/lib/PandoraFMS/DB.pm +++ b/pandora_server/lib/PandoraFMS/DB.pm @@ -152,7 +152,7 @@ sub get_server_id ($$$) { sub get_group_id ($$) { my ($dbh, $group_name) = @_; - my $rc = get_db_value ($dbh, "SELECT id_grupo FROM tgrupo WHERE nombre = ?", safe_input($group_name)); + my $rc = get_db_value ($dbh, 'SELECT id_grupo FROM tgrupo WHERE ' . db_text ('nombre') . ' = ?', safe_input($group_name)); return defined ($rc) ? $rc : -1; } diff --git a/pandora_server/lib/PandoraFMS/DataServer.pm b/pandora_server/lib/PandoraFMS/DataServer.pm index d64a65dd6d..004e183b32 100644 --- a/pandora_server/lib/PandoraFMS/DataServer.pm +++ b/pandora_server/lib/PandoraFMS/DataServer.pm @@ -314,9 +314,17 @@ sub process_xml_data ($$$$$) { # Get OS, group and description my $os = pandora_get_os ($data->{'os_name'}); - my $group_id = undef; - $group_id = get_db_value ($dbh, 'SELECT id_grupo FROM tgrupo WHERE ' . db_text ('nombre') . ' = ?', $data->{'group'}) if (defined ($data->{'group'})); - $group_id = $pa_config->{'autocreate_group'} unless defined ($group_id); + my $group_id = -1; + $group_id = get_group_id ($dbh, $data->{'group'}) if (defined ($data->{'group'})); + if ($group_id == -1) { + $group_id = $pa_config->{'autocreate_group'}; + if (! defined (get_group_name ($dbh, $group_id))) { + logger($pa_config, "Group id $group_id does not exist (check autocreate_group config token)", 3); + $AgentSem->up (); + return; + } + } + my $description = ''; $description = $data->{'description'} if (defined ($data->{'description'}));