mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-04 20:17:55 +00:00
a13a74f4c2
makentp picks the NTP daemon through xCAT::NTP::Backend, but then runs setupntp -- on the management node and, through updatenode -P, on every service node -- and setupntp decided for itself with `check_executes chronyd || USE_NTPD=yes`. A cluster with site.ntpbackend=ntpd and chronyd present therefore configured ntpd on the MN and chrony everywhere else. The selector was one code path only on the side that does not write the config. setupntp now takes --backend chrony|ntpd, and makentp passes what it chose on both call sites. The service-node dispatch passes the cluster's intent rather than this host's availability: a service node may have a different daemon installed, and the requested backend is a preference -- a node without chronyd still falls back to ntpd and logs that it did, rather than failing. --use-ntpd keeps working. Two results of choose() were computed and never read. A downgrade is now reported, so an admin who asked for one daemon and got the other is told. install=1 -- neither daemon present -- is an error naming the daemon that is missing, instead of falling through to the ntpd branch and reporting "Please make sure ntpd is installed" even when chrony was the preferred choice. Six cases cover the selection: the backend honoured in both directions, the probe still used when none is given, and the fallback when the requested daemon is absent. Removing the --backend case fails one; ignoring the preference fails two. Also worth stating plainly, since the PR reads as a management-node fix: setupntp stops and disables systemd-timesyncd wherever it runs, nodes included. It has to -- timesyncd disciplines the clock against the daemon being configured -- but a node that was relying on it loses it. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>