Merge branch 'ent-3252-bug-modulecrontab' into 'develop'

Fixed module_crontab in first execution in Linux

Closes pandora_enterprise#3252

See merge request artica/pandorafms!2096

Former-commit-id: 82248a9030939f1e37c0e252a3ffddff3f3f485c
This commit is contained in:
fermin 2019-01-08 08:44:48 +01:00
commit 958dbb263e
1 changed files with 10 additions and 2 deletions

View File

@ -516,11 +516,18 @@ sub parse_conf_modules($) {
log_message ('setup', "Invalid regular expression in intensive condition: $line");
}
}
} elsif ($line =~ /^\s*module_crontab\s+(((\*|(\d+(-\d+){0,1}))\s*){5}).*$/) {
} elsif ($line =~ /^\s*module_crontab\s+(.*)$/) {
my $cron_text = $1;
chomp ($cron_text);
$cron_text =~ s/\s+$//;
# Get module name if is already read.
my $module_name_message = "";
$module_name_message = " (module $module->{'name'})" if defined($module->{'name'});
if (cron_check_syntax($cron_text)) {
$module->{'cron'} = $cron_text;
log_message('debug', "Cron '$module->{'cron'}' configured $module_name_message.");
} else {
log_message('setup', "Incorrect cron syntax '$cron_text'. This module$module_name_message will be executed always.");
}
} elsif ($line =~ /^\s*module_end\s*$/) {
@ -2397,6 +2404,7 @@ sub check_module_cron {
$interval
);
my $is_first = ($module->{'cron_utimestamp'} == 0) ? 1 : 0;
$module->{'cron_utimestamp'} = $now + $time_to_next_execution;
$module->{'cron_interval'} = $time_to_next_execution;
@ -2405,7 +2413,7 @@ sub check_module_cron {
}
# On first execution checking if cron is valid is required
return 1 unless ($module->{'cron_utimestamp'} == 0);
return 1 unless ($is_first);
# Check if current timestamp is a valid cron date
my $next_execution = cron_next_execution_date(