Skip to content

Commit 1383d1a

Browse files
authored
CP-308544 Promote legacy default ntp servers (#6727)
For example, the legacy default ntp servers are `[0-3].centos.pool.ntp.org`, and current default ntp servers are `[0-3].xenserver.pool.ntp.org`. After update or upgrade, the legacy default ntp servers are recognized and changed to current default ntp servers. The mode is `ntp_mode_default` as well. Add a new config option named legacy-default-ntp-servers. It will be defined in xapi.conf.d/xenserver.conf (the same with default-ntp-servers)
2 parents 24ac858 + 490d243 commit 1383d1a

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed

ocaml/xapi/xapi_globs.ml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1420,6 +1420,8 @@ let failed_login_alert_freq = ref 3600
14201420

14211421
let default_ntp_servers = ref []
14221422

1423+
let legacy_default_ntp_servers = ref []
1424+
14231425
let other_options =
14241426
[
14251427
gen_list_option "sm-plugins"
@@ -1902,6 +1904,11 @@ let other_options =
19021904
, (fun () -> !ntp_client_path)
19031905
, "Path to the ntp client binary"
19041906
)
1907+
; gen_list_option "legacy-default-ntp-servers"
1908+
"space-separated list of legacy default NTP servers"
1909+
(fun s -> s)
1910+
(fun s -> s)
1911+
legacy_default_ntp_servers
19051912
; gen_list_option "default-ntp-servers"
19061913
"space-separated list of default NTP servers"
19071914
(fun s -> s)

ocaml/xapi/xapi_host.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3530,6 +3530,7 @@ let disable_ntp ~__context ~self =
35303530
Db.Host.set_ntp_enabled ~__context ~self ~value:false
35313531

35323532
let sync_ntp_config ~__context ~host =
3533+
Xapi_host_ntp.promote_legacy_default_servers () ;
35333534
let servers = Xapi_host_ntp.get_servers_from_conf () in
35343535
let is_ntp_dhcp_enabled = Xapi_host_ntp.is_ntp_dhcp_enabled () in
35353536
let ntp_mode =

ocaml/xapi/xapi_host_ntp.ml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
* GNU Lesser General Public License for more details.
1313
*)
1414

15+
module D = Debug.Make (struct let name = "xapi_host_ntp" end)
16+
17+
open D
18+
1519
let ( // ) = Filename.concat
1620

1721
let ntp_dhcp_server_path interface =
@@ -155,3 +159,19 @@ let get_servers_status () =
155159
None
156160
)
157161
lines
162+
163+
let promote_legacy_default_servers () =
164+
let servers = get_servers_from_conf () in
165+
let legacy = !Xapi_globs.legacy_default_ntp_servers in
166+
let defaults = !Xapi_globs.default_ntp_servers in
167+
if
168+
legacy <> []
169+
&& defaults <> []
170+
&& Xapi_stdext_std.Listext.List.set_equiv servers legacy
171+
then (
172+
info "Promoting legacy default NTP servers (%s) to new default servers (%s)"
173+
(String.concat "," servers)
174+
(String.concat "," defaults) ;
175+
set_servers_in_conf defaults ;
176+
restart_ntp_service ()
177+
)

ocaml/xapi/xapi_host_ntp.mli

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ val set_servers_in_conf : string list -> unit
2020

2121
val clear_servers_in_conf : unit -> unit
2222

23+
val promote_legacy_default_servers : unit -> unit
24+
2325
val restart_ntp_service : unit -> unit
2426

2527
val enable_ntp_service : unit -> unit

0 commit comments

Comments
 (0)