summaryrefslogtreecommitdiff
path: root/src/conf_mode/interfaces-pppoe.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-07-25 17:54:49 +0200
committerChristian Poessinger <christian@poessinger.com>2020-07-25 17:54:49 +0200
commitb7dfe4e1484df5c711ea81d360643f0331c518c8 (patch)
tree405ddf654da4324635f129f8009803cfd321836c /src/conf_mode/interfaces-pppoe.py
parentbfbf51acb2d4b6b5fe2d22d39f7259686f98d2a0 (diff)
parente57d76e86f7e5280eb065e98552c7d6395805c01 (diff)
downloadvyos-1x-b7dfe4e1484df5c711ea81d360643f0331c518c8.tar.gz
vyos-1x-b7dfe4e1484df5c711ea81d360643f0331c518c8.zip
Merge branch 'interface-rewrite' of github.com:c-po/vyos-1x into current
* 'interface-rewrite' of github.com:c-po/vyos-1x: vyos.configverify: T2653: fix some formatting issues ifconfig: T2653: make ifname an optional argument to get_interface_dict() vyos.configdict: T2653: remove obsolete code from configdict and ifconfig_vlan wireless: ifconfig: T2653: move to get_config_dict() ifconfig: T2653: move get_ethertype() from configdict to interface vlan: ifconfig: T2653: move get_removed_vlans() to vyos.configdiff bonding: ifconfig: T2653: move to get_config_dict() ifconfig: T2653: move vlan configuration code to base class vyos.configdict: T2653: use dict_merge() over update() ifconfig: T2653: implement update() in derived classes for admin up/down vyos.configdict: T2653: add new reusable helper node_changed() geneve: ifconfig: T2653: move to get_config_dict() ifconfig: T2653: move bridge member check to base class interfaces: ifconfig: T2653: migrate to get_interface_dict() API pseudo-ethernet: ifconfig: T2653: move to get_config_dict() bridge: ifconfig: T2653: move to get_config_dict() vlan: ifconfig: T2653: only enable interface when lower interface is up ethernet: ifconfig: T2653: move to get_config_dict() ifconfig: T2653: set arp-cache-timeout default value of 30ms
Diffstat (limited to 'src/conf_mode/interfaces-pppoe.py')
-rwxr-xr-xsrc/conf_mode/interfaces-pppoe.py47
1 files changed, 15 insertions, 32 deletions
diff --git a/src/conf_mode/interfaces-pppoe.py b/src/conf_mode/interfaces-pppoe.py
index 3ee57e83c..b9a88a949 100755
--- a/src/conf_mode/interfaces-pppoe.py
+++ b/src/conf_mode/interfaces-pppoe.py
@@ -22,51 +22,34 @@ from copy import deepcopy
from netifaces import interfaces
from vyos.config import Config
-from vyos.configdict import dict_merge
+from vyos.configdict import get_interface_dict
from vyos.configverify import verify_source_interface
from vyos.configverify import verify_vrf
from vyos.template import render
from vyos.util import call
-from vyos.xml import defaults
from vyos import ConfigError
from vyos import airbag
airbag.enable()
def get_config():
- """ Retrive CLI config as dictionary. Dictionary can never be empty,
- as at least the interface name will be added or a deleted flag """
+ """
+ Retrive CLI config as dictionary. Dictionary can never be empty, as at least the
+ interface name will be added or a deleted flag
+ """
conf = Config()
-
- # determine tagNode instance
- if 'VYOS_TAGNODE_VALUE' not in os.environ:
- raise ConfigError('Interface (VYOS_TAGNODE_VALUE) not specified')
-
- # retrieve interface default values
base = ['interfaces', 'pppoe']
- default_values = defaults(base)
- # PPPoE is "special" the default MTU is 1492 - update accordingly
- default_values['mtu'] = '1492'
-
- ifname = os.environ['VYOS_TAGNODE_VALUE']
- base = base + [ifname]
+ pppoe = get_interface_dict(conf, base)
- pppoe = conf.get_config_dict(base, key_mangling=('-', '_'), get_first_key=True)
- # Check if interface has been removed
- if pppoe == {}:
- pppoe.update({'deleted' : ''})
-
- # We have gathered the dict representation of the CLI, but there are
- # default options which we need to update into the dictionary
- # retrived.
- pppoe = dict_merge(default_values, pppoe)
-
- # Add interface instance name into dictionary
- pppoe.update({'ifname': ifname})
+ # PPPoE is "special" the default MTU is 1492 - update accordingly
+ # as the config_level is already st in get_interface_dict() - we can use []
+ tmp = conf.get_config_dict([], key_mangling=('-', '_'), get_first_key=True)
+ if 'mtu' not in tmp:
+ pppoe['mtu'] = '1492'
return pppoe
def verify(pppoe):
- if 'deleted' in pppoe.keys():
+ if 'deleted' in pppoe:
# bail out early
return None
@@ -92,7 +75,7 @@ def generate(pppoe):
config_files = [config_pppoe, script_pppoe_pre_up, script_pppoe_ip_up,
script_pppoe_ip_down, script_pppoe_ipv6_up, config_wide_dhcp6c]
- if 'deleted' in pppoe.keys():
+ if 'deleted' in pppoe:
# stop DHCPv6-PD client
call(f'systemctl stop dhcp6c@{ifname}.service')
# Hang-up PPPoE connection
@@ -130,11 +113,11 @@ def generate(pppoe):
return None
def apply(pppoe):
- if 'deleted' in pppoe.keys():
+ if 'deleted' in pppoe:
# bail out early
return None
- if 'disable' not in pppoe.keys():
+ if 'disable' not in pppoe:
# Dial PPPoE connection
call('systemctl restart ppp@{ifname}.service'.format(**pppoe))