From 49defb01143eb032b143ecee8ee0e7d007d6b0f2 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 21 May 2020 19:06:03 +0200 Subject: pppoe: T2380: dis-/connect should use proper systemd calls --- src/conf_mode/interfaces-pppoe.py | 47 +++++++++++++++++++-------------------- src/op_mode/connect_disconnect.py | 18 ++++++++------- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/src/conf_mode/interfaces-pppoe.py b/src/conf_mode/interfaces-pppoe.py index 95136ecfa..f58095f13 100755 --- a/src/conf_mode/interfaces-pppoe.py +++ b/src/conf_mode/interfaces-pppoe.py @@ -205,30 +205,29 @@ def generate(pppoe): if os.path.exists(file): os.unlink(file) - else: - # generated script must be executable - - # Create PPP configuration files - render(config_pppoe, 'pppoe/peer.tmpl', - pppoe, trim_blocks=True, permission=0o755) - # Create script for ip-pre-up.d - render(script_pppoe_pre_up, 'pppoe/ip-pre-up.script.tmpl', - pppoe, trim_blocks=True, permission=0o755) - # Create script for ip-up.d - render(script_pppoe_ip_up, 'pppoe/ip-up.script.tmpl', - pppoe, trim_blocks=True, permission=0o755) - # Create script for ip-down.d - render(script_pppoe_ip_down, 'pppoe/ip-down.script.tmpl', - pppoe, trim_blocks=True, permission=0o755) - # Create script for ipv6-up.d - render(script_pppoe_ipv6_up, 'pppoe/ipv6-up.script.tmpl', - pppoe, trim_blocks=True, permission=0o755) - - if len(pppoe['dhcpv6_pd']) > 0: - # ipv6.tmpl relies on ifname - this should be made consitent in the - # future better then double key-ing the same value - pppoe['ifname'] = intf - render(config_wide_dhcp6c, 'dhcp-client/ipv6.tmpl', pppoe, trim_blocks=True) + return None + + # Create PPP configuration files + render(config_pppoe, 'pppoe/peer.tmpl', + pppoe, trim_blocks=True, permission=0o755) + # Create script for ip-pre-up.d + render(script_pppoe_pre_up, 'pppoe/ip-pre-up.script.tmpl', + pppoe, trim_blocks=True, permission=0o755) + # Create script for ip-up.d + render(script_pppoe_ip_up, 'pppoe/ip-up.script.tmpl', + pppoe, trim_blocks=True, permission=0o755) + # Create script for ip-down.d + render(script_pppoe_ip_down, 'pppoe/ip-down.script.tmpl', + pppoe, trim_blocks=True, permission=0o755) + # Create script for ipv6-up.d + render(script_pppoe_ipv6_up, 'pppoe/ipv6-up.script.tmpl', + pppoe, trim_blocks=True, permission=0o755) + + if len(pppoe['dhcpv6_pd']) > 0: + # ipv6.tmpl relies on ifname - this should be made consitent in the + # future better then double key-ing the same value + pppoe['ifname'] = intf + render(config_wide_dhcp6c, 'dhcp-client/ipv6.tmpl', pppoe, trim_blocks=True) return None diff --git a/src/op_mode/connect_disconnect.py b/src/op_mode/connect_disconnect.py index fa865f840..a773aa28e 100755 --- a/src/op_mode/connect_disconnect.py +++ b/src/op_mode/connect_disconnect.py @@ -24,8 +24,8 @@ from time import strftime, localtime, time from vyos.util import call def check_interface(interface): - if not os.path.isfile('/etc/ppp/peers/{}'.format(interface)): - print('Interface {}: invalid!'.format(interface)) + if not os.path.isfile(f'/etc/ppp/peers/{interface}'): + print(f'Interface {interface}: invalid!') exit(1) def check_ppp_running(interface): @@ -46,12 +46,13 @@ def connect(interface): check_interface(interface) # Check if interface is already dialed - if os.path.isdir('/sys/class/net/{}'.format(interface)): - print('Interface {}: already connected!'.format(interface)) + if os.path.isdir(f'/sys/class/net/{interface}'): + print(f'Interface {interface}: already connected!') elif check_ppp_running(interface): - print('Interface {}: connection is beeing established!'.format(interface)) + print(f'Interface {interface}: connection is beeing established!') else: - print('Interface {}: connecting...'.format(interface)) + print(f'Interface {interface}: connecting...') + call(f'systemctl restart ppp@{interface}.service') def disconnect(interface): """ @@ -61,9 +62,10 @@ def disconnect(interface): # Check if interface is already down if not check_ppp_running(interface): - print('Interface {}: connection is already down'.format(interface)) + print(f'Interface {interface}: connection is already down') else: - print('Interface {}: disconnecting...'.format(interface)) + print(f'Interface {interface}: disconnecting...') + call(f'systemctl stop ppp@{interface}.service') def main(): parser = argparse.ArgumentParser() -- cgit v1.2.3