diff options
author | Angelo Naselli <anaselli@linux.it> | 2015-03-25 12:06:03 +0100 |
---|---|---|
committer | Angelo Naselli <anaselli@linux.it> | 2015-03-25 12:06:03 +0100 |
commit | 7d4134a7fdc5651e90b7aefbda95c5a1998ec3c6 (patch) | |
tree | d2c504a1ad271a57c9fbce23eb84f9ea9820f0a2 | |
parent | 031f000833f385de8bc5142c571aec73399b4a1a (diff) | |
download | manatools-7d4134a7fdc5651e90b7aefbda95c5a1998ec3c6.tar manatools-7d4134a7fdc5651e90b7aefbda95c5a1998ec3c6.tar.gz manatools-7d4134a7fdc5651e90b7aefbda95c5a1998ec3c6.tar.bz2 manatools-7d4134a7fdc5651e90b7aefbda95c5a1998ec3c6.tar.xz manatools-7d4134a7fdc5651e90b7aefbda95c5a1998ec3c6.zip |
fixed ntp_program attribute initialization and added its test
-rw-r--r-- | lib/ManaTools/Shared/TimeZone.pm | 41 | ||||
-rw-r--r-- | t/04-Shared_TimeZone.t | 2 |
2 files changed, 36 insertions, 7 deletions
diff --git a/lib/ManaTools/Shared/TimeZone.pm b/lib/ManaTools/Shared/TimeZone.pm index 155de20d..d481bf23 100644 --- a/lib/ManaTools/Shared/TimeZone.pm +++ b/lib/ManaTools/Shared/TimeZone.pm @@ -105,17 +105,16 @@ has 'timezone_prefix' => ( has 'ntp_configuration_file' => ( is => 'rw', isa => 'Str', + lazy => 1, builder => '_ntp_configuration_file_init', ); sub _ntp_configuration_file_init { my $self = shift; - return "/etc/chrony.conf" if (-f "/etc/chrony.conf"); - - return "/etc/ntp.conf" if (-f "/etc/ntp.conf"); + my $curr = $self->ntp_program; - return "/etc/systemd/timesyncd.conf"; + return $self->getNTPServiceConfig($curr); } #============================================================= @@ -163,11 +162,39 @@ has 'ntp_program' => ( sub _ntp_program_init { my $self = shift; - return "chronyd" if ($self->ntp_configuration_file() eq "/etc/chrony.conf"); + # looks for a running service from the configured ones, + # if none is running chooses the first of the list + my $list = $self->ntpServiceList(); + return $self->loc->N("No NTP services") if !$list; - return "ntpd" if ($self->ntp_configuration_file() eq "/etc/ntp.conf"); + my $ntpd; + my $isRunning = 0; + foreach $ntpd (@{$list}) { + $isRunning = $self->sh_services->is_service_running($ntpd); + last if $isRunning; + } + + if (!$isRunning) { + # being sure systemd-timesyncd is not really running (or set to be) + if ($self->getEmbeddedNTP()) { + $ntpd = "systemd-timesyncd"; + Sys::Syslog::syslog( + 'info|local1', + $self->loc->N("%s enabled but stopped - disabling it", + $ntpd + ) + ); + # enabled but stopped, disabling it + # NOTE this happens tipically on VM if not well configured + $self->setEmbeddedNTP(0); + } + else { + # coosing the first one of the list that is not running + $ntpd = $list->[0]; + } + } - return "systemd-timesyncd" if ($self->ntp_configuration_file() eq "/etc/systemd/timesyncd.conf"); + return $ntpd; } #============================================================= diff --git a/t/04-Shared_TimeZone.t b/t/04-Shared_TimeZone.t index 9f286cce..21dd2e72 100644 --- a/t/04-Shared_TimeZone.t +++ b/t/04-Shared_TimeZone.t @@ -14,6 +14,8 @@ BEGIN { ok (my @l = $tz->getTimeZones(), 'getTimeZones'); ok (my $h = $tz->readConfiguration(), 'readConfiguration'); diag Dumper($h); + ok (my $currService = $tz->ntp_program(), 'ntp_program'); + diag "ntp_program got: < " . $currService . " >"; ok (my $s = $tz->ntpCurrentServer(), 'currentNTPServer'); diag "ntpCurrentServer got: < " . ($s ? $s : "none") . " >"; ok (my $a = ($tz->isNTPRunning() ? "running" : "not running"), 'isNTPRunning'); |