diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-08-25 18:55:36 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2022-08-25 18:57:27 +0200 |
commit | 7d83077102b56d984fe2ea73ab3cd45f60a27c41 (patch) | |
tree | 9aceae445472fbf475c30938b4641620093dc0f4 | |
parent | 85e0d4ecbf694973dc20e48b1284529b8be01c19 (diff) | |
download | vyos-1x-7d83077102b56d984fe2ea73ab3cd45f60a27c41.tar.gz vyos-1x-7d83077102b56d984fe2ea73ab3cd45f60a27c41.zip |
ntp: T2185: use reload-or-restart on configuration changes
-rwxr-xr-x | src/conf_mode/ntp.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/conf_mode/ntp.py b/src/conf_mode/ntp.py index 5490a794d..0ecb4d736 100755 --- a/src/conf_mode/ntp.py +++ b/src/conf_mode/ntp.py @@ -17,6 +17,7 @@ import os from vyos.config import Config +from vyos.configdict import is_node_changed from vyos.configverify import verify_vrf from vyos.configverify import verify_interface_exists from vyos.util import call @@ -40,6 +41,10 @@ def get_config(config=None): ntp = conf.get_config_dict(base, key_mangling=('-', '_'), get_first_key=True) ntp['config_file'] = config_file + + tmp = is_node_changed(conf, base + ['vrf']) + if tmp: ntp.update({'restart_required': {}}) + return ntp def verify(ntp): @@ -78,19 +83,25 @@ def generate(ntp): return None def apply(ntp): + systemd_service = 'ntp.service' + # Reload systemd manager configuration + call('systemctl daemon-reload') + if not ntp: # NTP support is removed in the commit - call('systemctl stop ntp.service') + call(f'systemctl stop {systemd_service}') if os.path.exists(config_file): os.unlink(config_file) if os.path.isfile(systemd_override): os.unlink(systemd_override) + return - # Reload systemd manager configuration - call('systemctl daemon-reload') - if ntp: - call('systemctl restart ntp.service') + # we need to restart the service if e.g. the VRF name changed + systemd_action = 'reload-or-restart' + if 'restart_required' in ntp: + systemd_action = 'restart' + call(f'systemctl {systemd_action} {systemd_service}') return None if __name__ == '__main__': |