diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-07-25 17:54:49 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-07-25 17:54:49 +0200 |
commit | b7dfe4e1484df5c711ea81d360643f0331c518c8 (patch) | |
tree | 405ddf654da4324635f129f8009803cfd321836c /src/conf_mode/interfaces-wirelessmodem.py | |
parent | bfbf51acb2d4b6b5fe2d22d39f7259686f98d2a0 (diff) | |
parent | e57d76e86f7e5280eb065e98552c7d6395805c01 (diff) | |
download | vyos-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-wirelessmodem.py')
-rwxr-xr-x | src/conf_mode/interfaces-wirelessmodem.py | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/src/conf_mode/interfaces-wirelessmodem.py b/src/conf_mode/interfaces-wirelessmodem.py index 0964a8f4d..4081be3c9 100755 --- a/src/conf_mode/interfaces-wirelessmodem.py +++ b/src/conf_mode/interfaces-wirelessmodem.py @@ -20,11 +20,11 @@ from fnmatch import fnmatch from sys import exit from vyos.config import Config -from vyos.configdict import dict_merge +from vyos.configdict import get_interface_dict from vyos.configverify import verify_vrf from vyos.template import render from vyos.util import call -from vyos.xml import defaults +from vyos.util import check_kmod from vyos import ConfigError from vyos import airbag airbag.enable() @@ -42,44 +42,23 @@ def find_device_file(device): return None 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', 'wirelessmodem'] - default_values = defaults(base) - - ifname = os.environ['VYOS_TAGNODE_VALUE'] - base = base + [ifname] - - wwan = conf.get_config_dict(base, key_mangling=('-', '_'), get_first_key=True) - # Check if interface has been removed - if wwan == {}: - wwan.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. - wwan = dict_merge(default_values, wwan) - - # Add interface instance name into dictionary - wwan.update({'ifname': ifname}) - + wwan = get_interface_dict(conf, base) return wwan def verify(wwan): - if 'deleted' in wwan.keys(): + if 'deleted' in wwan: return None - if not 'apn' in wwan.keys(): + if not 'apn' in wwan: raise ConfigError('No APN configured for "{ifname}"'.format(**wwan)) - if not 'device' in wwan.keys(): + if not 'device' in wwan: raise ConfigError('Physical "device" must be configured') # we can not use isfile() here as Linux device files are no regular files @@ -136,11 +115,11 @@ def generate(wwan): return None def apply(wwan): - if 'deleted' in wwan.keys(): + if 'deleted' in wwan: # bail out early return None - if not 'disable' in wwan.keys(): + if not 'disable' in wwan: # "dial" WWAN connection call('systemctl start ppp@{ifname}.service'.format(**wwan)) |