From cbc293c31709af86af07f03a60818136eeef84fb Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 27 Jun 2020 12:36:46 +0200 Subject: ifconfig: T2653: add vyos.configverify.verify_source_interface() helper --- python/vyos/configverify.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'python/vyos/configverify.py') diff --git a/python/vyos/configverify.py b/python/vyos/configverify.py index 64eb80728..e2fffeca7 100644 --- a/python/vyos/configverify.py +++ b/python/vyos/configverify.py @@ -21,14 +21,14 @@ # NOTE: imports should be as local as possible to the function which # makes use of it! +from vyos import ConfigError + def verify_bridge_vrf(config): """ Common helper function used by interface implementations to perform recurring validation of VRF configuration """ from netifaces import interfaces - from vyos import ConfigError - if 'vrf' in config.keys(): if config['vrf'] not in interfaces(): raise ConfigError('VRF "{vrf}" does not exist'.format(**config)) @@ -45,8 +45,6 @@ def verify_bridge_address(config): perform recurring validation of IP address assignmenr when interface also is part of a bridge. """ - from vyos import ConfigError - if {'is_bridge_member', 'address'} <= set(config): raise ConfigError( f'Cannot assign address to interface "{ifname}" as it is a ' @@ -59,9 +57,18 @@ def verify_bridge_delete(config): perform recurring validation of IP address assignmenr when interface also is part of a bridge. """ - from vyos import ConfigError - if 'is_bridge_member' in config.keys(): raise ConfigError( 'Interface "{ifname}" cannot be deleted as it is a ' 'member of bridge "{is_bridge_member}"!'.format(**config)) + + +def verify_source_interface(config): + """ + Common helper function used by interface implementations to + perform recurring validation of the existence of a source-interface + required by e.g. peth/MACvlan, MACsec ... + """ + if not 'source_interface' in config.keys(): + raise ConfigError('Physical source-interface required for ' + 'interface "{ifname}"'.format(**config)) -- cgit v1.2.3