summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2024-04-01 20:40:16 +0200
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-04-02 16:33:59 +0000
commitcc208d74567e44d6cffa4fc9fd58bd9bcf050930 (patch)
tree78142756fc6b52802ce9600efb3df98d968c869c /python
parentb3fb51cd799d231d16425faa1495bc6b9188d814 (diff)
downloadvyos-1x-cc208d74567e44d6cffa4fc9fd58bd9bcf050930.tar.gz
vyos-1x-cc208d74567e44d6cffa4fc9fd58bd9bcf050930.zip
ssh: T6192: allow binding to multiple VRF instances
Currently VyOS only supports binding a service to one individual VRF. It might become handy to have the services (initially it will be VRF, NTP and SNMP) be bound to multiple VRFs. Changed VRF from leafNode to multi leafNode with defaultValue: default - which is the name of the default VRF. (cherry picked from commit e5af1f0905991103b12302892e6f0070bbb7b770)
Diffstat (limited to 'python')
-rw-r--r--python/vyos/configverify.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/python/vyos/configverify.py b/python/vyos/configverify.py
index 894dc3286..651036bad 100644
--- a/python/vyos/configverify.py
+++ b/python/vyos/configverify.py
@@ -99,10 +99,17 @@ def verify_vrf(config):
Common helper function used by interface implementations to perform
recurring validation of VRF configuration.
"""
- from netifaces import interfaces
- if 'vrf' in config and config['vrf'] != 'default':
- if config['vrf'] not in interfaces():
- raise ConfigError('VRF "{vrf}" does not exist'.format(**config))
+ from vyos.utils.network import interface_exists
+ if 'vrf' in config:
+ vrfs = config['vrf']
+ if isinstance(vrfs, str):
+ vrfs = [vrfs]
+
+ for vrf in vrfs:
+ if vrf == 'default':
+ continue
+ if not interface_exists(vrf):
+ raise ConfigError(f'VRF "{vrf}" does not exist!')
if 'is_bridge_member' in config:
raise ConfigError(