summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2024-08-13 06:00:11 +0200
committerGitHub <noreply@github.com>2024-08-13 06:00:11 +0200
commitdc34fb02dfdc1c271ff73555a0cf707d9b4f7a2d (patch)
treeacf26bd90811d6765005c73ae14400e8af75376b /python
parentc50c55b93027d9000fa4fd966197402c1422ed3f (diff)
parent7e7196de61d9500b01a9e65582127cb80c249ae2 (diff)
downloadvyos-1x-dc34fb02dfdc1c271ff73555a0cf707d9b4f7a2d.tar.gz
vyos-1x-dc34fb02dfdc1c271ff73555a0cf707d9b4f7a2d.zip
Merge pull request #3972 from vyos/mergify/bp/circinus/pr-3961
configverify: T6642: verify_interface_exists requires config_dict arg (backport #3961)
Diffstat (limited to 'python')
-rw-r--r--python/vyos/config.py3
-rw-r--r--python/vyos/configverify.py6
2 files changed, 5 insertions, 4 deletions
diff --git a/python/vyos/config.py b/python/vyos/config.py
index b7ee606a9..1fab46761 100644
--- a/python/vyos/config.py
+++ b/python/vyos/config.py
@@ -344,6 +344,9 @@ class Config(object):
conf_dict['pki'] = pki_dict
+ interfaces_root = root_dict.get('interfaces', {})
+ setattr(conf_dict, 'interfaces_root', interfaces_root)
+
# save optional args for a call to get_config_defaults
setattr(conf_dict, '_dict_kwargs', kwargs)
diff --git a/python/vyos/configverify.py b/python/vyos/configverify.py
index b49d66c36..59b67300d 100644
--- a/python/vyos/configverify.py
+++ b/python/vyos/configverify.py
@@ -237,7 +237,7 @@ def verify_bridge_delete(config):
raise ConfigError(f'Interface "{interface}" cannot be deleted as it '
f'is a member of bridge "{bridge_name}"!')
-def verify_interface_exists(ifname, state_required=False, warning_only=False):
+def verify_interface_exists(config, ifname, state_required=False, warning_only=False):
"""
Common helper function used by interface implementations to perform
recurring validation if an interface actually exists. We first probe
@@ -245,14 +245,12 @@ def verify_interface_exists(ifname, state_required=False, warning_only=False):
it exists at the OS level.
"""
from vyos.base import Warning
- from vyos.configquery import ConfigTreeQuery
from vyos.utils.dict import dict_search_recursive
from vyos.utils.network import interface_exists
if not state_required:
# Check if interface is present in CLI config
- config = ConfigTreeQuery()
- tmp = config.get_config_dict(['interfaces'], get_first_key=True)
+ tmp = getattr(config, 'interfaces_root', {})
if bool(list(dict_search_recursive(tmp, ifname))):
return True