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 | |
| 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
| -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: | 
