2009-11-06 Ramon Novoa <rnovoa@artica.es>
* lib/PandoraFMS/Tools.pm: Fixed bug #2893302. * util/pandora_db.pl: Fixed bug #2893303. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2090 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
b117cae535
commit
6cf4847982
|
@ -1,3 +1,9 @@
|
||||||
|
2009-11-06 Ramon Novoa <rnovoa@artica.es>
|
||||||
|
|
||||||
|
* lib/PandoraFMS/Tools.pm: Fixed bug #2893302.
|
||||||
|
|
||||||
|
* util/pandora_db.pl: Fixed bug #2893303.
|
||||||
|
|
||||||
2009-11-04 Ramon Novoa <rnovoa@artica.es>
|
2009-11-04 Ramon Novoa <rnovoa@artica.es>
|
||||||
|
|
||||||
* lib/PandoraFMS/Core.pm: Fixed a typo.
|
* lib/PandoraFMS/Core.pm: Fixed a typo.
|
||||||
|
|
|
@ -21,7 +21,7 @@ use warnings;
|
||||||
use Time::Local;
|
use Time::Local;
|
||||||
use POSIX qw(setsid strftime);
|
use POSIX qw(setsid strftime);
|
||||||
use Mail::Sendmail; # New in 2.0. Used to sendmail internally, without external scripts
|
use Mail::Sendmail; # New in 2.0. Used to sendmail internally, without external scripts
|
||||||
use Module::Loaded;
|
#use Module::Loaded;
|
||||||
|
|
||||||
require Exporter;
|
require Exporter;
|
||||||
|
|
||||||
|
@ -339,7 +339,7 @@ sub float_equal {
|
||||||
sub enterprise_load () {
|
sub enterprise_load () {
|
||||||
|
|
||||||
# Already loaded
|
# Already loaded
|
||||||
return 1 if (is_loaded ('PandoraFMS::Enterprise'));
|
#return 1 if (is_loaded ('PandoraFMS::Enterprise'));
|
||||||
|
|
||||||
# Try to load the module
|
# Try to load the module
|
||||||
eval 'local $SIG{__DIE__}; require PandoraFMS::Enterprise;';
|
eval 'local $SIG{__DIE__}; require PandoraFMS::Enterprise;';
|
||||||
|
|
|
@ -171,8 +171,8 @@ sub pandora_compactdb {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Calculate the start date
|
# Calculate the start date
|
||||||
my $start_date = DateCalc("today","-$days days",\$err);
|
my $start_utime = time() - $days * 24 * 60 * 60;
|
||||||
my $start_utime = &UnixDate($start_date,"%s");
|
my $start_date = strftime ("%Y-%m-%d %H:%M:%S", localtime($start_utime));
|
||||||
my $stop_date;
|
my $stop_date;
|
||||||
my $stop_utime;
|
my $stop_utime;
|
||||||
|
|
||||||
|
@ -413,10 +413,21 @@ sub pandora_checkdb_consistency {
|
||||||
# for each record in tagente_modulo
|
# for each record in tagente_modulo
|
||||||
while (@datarow4 = $prep4->fetchrow_array()) {
|
while (@datarow4 = $prep4->fetchrow_array()) {
|
||||||
my $id_agente_modulo = $datarow4[1];
|
my $id_agente_modulo = $datarow4[1];
|
||||||
|
|
||||||
|
# Skip policy modules
|
||||||
|
next if (is_policy_module ($dbh, $id_agente_modulo));
|
||||||
|
|
||||||
|
# Delete the module
|
||||||
my $query0 = "DELETE FROM tagente_modulo WHERE disabled = 0 AND id_agente_modulo = $id_agente_modulo";
|
my $query0 = "DELETE FROM tagente_modulo WHERE disabled = 0 AND id_agente_modulo = $id_agente_modulo";
|
||||||
my $prep0 = $dbh->prepare($query0);
|
my $prep0 = $dbh->prepare($query0);
|
||||||
$prep0 ->execute;
|
$prep0 ->execute;
|
||||||
$prep0->finish();
|
$prep0->finish();
|
||||||
|
|
||||||
|
# Delete any alerts associated to the module
|
||||||
|
$query0 = "DELETE FROM talert_template_modules WHERE id_agent_module = $id_agente_modulo";
|
||||||
|
$prep0 = $dbh->prepare($query0);
|
||||||
|
$prep0 ->execute;
|
||||||
|
$prep0->finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$prep4->finish();
|
$prep4->finish();
|
||||||
|
@ -480,6 +491,51 @@ sub pandora_checkdb_consistency {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Returns undef if the module is not a policy module.
|
||||||
|
###############################################################################
|
||||||
|
sub is_policy_module ($$) {
|
||||||
|
my ($dbh, $module_id) = @_;
|
||||||
|
my ($agent_id, $module_name, $policy_id) = (undef, undef, undef);
|
||||||
|
|
||||||
|
# Get agent id
|
||||||
|
my $sth = $dbh->prepare('SELECT id_agente FROM tagente_modulo WHERE id_agente_modulo = ?');
|
||||||
|
$sth->execute ($module_id);
|
||||||
|
while (my @row = $sth->fetchrow_array()) {
|
||||||
|
$agent_id = $row[0];
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
$sth->finish();
|
||||||
|
return unless defined ($agent_id);
|
||||||
|
|
||||||
|
# Get module name
|
||||||
|
$sth = $dbh->prepare('SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = ?');
|
||||||
|
$sth->execute ($module_id);
|
||||||
|
while (my @row = $sth->fetchrow_array()) {
|
||||||
|
$module_name = $row[0];
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
$sth->finish();
|
||||||
|
return unless defined ($module_name);
|
||||||
|
|
||||||
|
# Search policies
|
||||||
|
$sth = $dbh->prepare('SELECT t3.id FROM tpolicy_agents AS t1
|
||||||
|
INNER JOIN tpolicy_modules AS t2 ON t1.id_policy = t2.id_policy
|
||||||
|
INNER JOIN tpolicies AS t3 ON t1.id_policy = t3.id
|
||||||
|
WHERE t1.id_agent = ? AND t2.name LIKE ?');
|
||||||
|
$sth->execute ($agent_id, $module_name);
|
||||||
|
while (my @row = $sth->fetchrow_array()) {
|
||||||
|
$policy_id = $row[0];
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
$sth->finish();
|
||||||
|
|
||||||
|
# Not a policy module
|
||||||
|
return undef unless defined ($policy_id);
|
||||||
|
|
||||||
|
return $policy_id;
|
||||||
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# SUB help_screen()
|
# SUB help_screen()
|
||||||
# Show a help screen an exits
|
# Show a help screen an exits
|
||||||
|
|
Loading…
Reference in New Issue