diff options
author | Daniil Baturin <daniil@vyos.io> | 2024-08-09 09:42:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-09 09:42:31 +0100 |
commit | be27b8932161b403dfad2551ce791059ff1f3925 (patch) | |
tree | 28dfdcacc73210ab4d5ced30359a85695a14a748 /python/vyos | |
parent | 7b9d5f016624a4811de326568d6ca93cf073aef0 (diff) | |
parent | ed63c9d1896a218715e13e1799fc059f4561f75e (diff) | |
download | vyos-1x-be27b8932161b403dfad2551ce791059ff1f3925.tar.gz vyos-1x-be27b8932161b403dfad2551ce791059ff1f3925.zip |
Merge pull request #3960 from jestabro/verify-interface-state-exists
qos: T6638: require interface state existence in verify conditional
Diffstat (limited to 'python/vyos')
-rw-r--r-- | python/vyos/configverify.py | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/python/vyos/configverify.py b/python/vyos/configverify.py index 4cb84194a..b49d66c36 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, warning_only=False): +def verify_interface_exists(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 @@ -249,11 +249,12 @@ def verify_interface_exists(ifname, warning_only=False): from vyos.utils.dict import dict_search_recursive from vyos.utils.network import interface_exists - # Check if interface is present in CLI config - config = ConfigTreeQuery() - tmp = config.get_config_dict(['interfaces'], get_first_key=True) - if bool(list(dict_search_recursive(tmp, ifname))): - return True + if not state_required: + # Check if interface is present in CLI config + config = ConfigTreeQuery() + tmp = config.get_config_dict(['interfaces'], get_first_key=True) + if bool(list(dict_search_recursive(tmp, ifname))): + return True # Interface not found on CLI, try Linux Kernel if interface_exists(ifname): |