diff options
author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2022-12-01 16:05:38 +0000 |
---|---|---|
committer | Viacheslav Hletenko <v.gletenko@vyos.io> | 2022-12-02 09:42:03 +0000 |
commit | 63c18aefa85f5b5b749932eae4def675a7d23f51 (patch) | |
tree | a34fc150628ea3f55fc85750d41d2f167432ae1b /src/conf_mode/service_pppoe-server.py | |
parent | 33c0d77bfa10c81dfc93c4eca781279df9cf1034 (diff) | |
download | vyos-1x-63c18aefa85f5b5b749932eae4def675a7d23f51.tar.gz vyos-1x-63c18aefa85f5b5b749932eae4def675a7d23f51.zip |
T4805: Restart pppoe-server if client pool was changed
Some changes for 'service pppoe-server' require 'restart' the
accel-ppp@pppoe.service
But we use option 'reload-or-restart' that doesn't work correctly
with 'accel-ppp'
Restart pppoe-server if client pool was changed
Diffstat (limited to 'src/conf_mode/service_pppoe-server.py')
-rwxr-xr-x | src/conf_mode/service_pppoe-server.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/conf_mode/service_pppoe-server.py b/src/conf_mode/service_pppoe-server.py index ba0249efd..600ba4e92 100755 --- a/src/conf_mode/service_pppoe-server.py +++ b/src/conf_mode/service_pppoe-server.py @@ -20,6 +20,7 @@ from sys import exit from vyos.config import Config from vyos.configdict import get_accel_dict +from vyos.configdict import is_node_changed from vyos.configverify import verify_accel_ppp_base_service from vyos.configverify import verify_interface_exists from vyos.template import render @@ -43,6 +44,13 @@ def get_config(config=None): # retrieve common dictionary keys pppoe = get_accel_dict(conf, base, pppoe_chap_secrets) + + # reload-or-restart does not implemented in accel-ppp + # use this workaround until it will be implemented + # https://phabricator.accel-ppp.org/T3 + if is_node_changed(conf, base + ['client-ip-pool']) or is_node_changed( + conf, base + ['client-ipv6-pool']): + pppoe.update({'restart_required': {}}) return pppoe def verify(pppoe): @@ -95,7 +103,10 @@ def apply(pppoe): os.unlink(file) return None - call(f'systemctl reload-or-restart {systemd_service}') + if 'restart_required' in pppoe: + call(f'systemctl restart {systemd_service}') + else: + call(f'systemctl reload-or-restart {systemd_service}') if __name__ == '__main__': try: |