diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-07-10 22:44:03 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2022-07-10 22:44:03 +0200 |
commit | 3915791216998a18bf6831450df68ee199e2e4f8 (patch) | |
tree | 31fa64826dec49c4911b7fec07d88923d5012d3e /python | |
parent | cabfd006bed9cd2d1512cb313616a8e97fe29b9e (diff) | |
download | vyos-1x-3915791216998a18bf6831450df68ee199e2e4f8.tar.gz vyos-1x-3915791216998a18bf6831450df68ee199e2e4f8.zip |
vyos.configdict(): T4228: is_member() must use the "real" hardware interface
When is_member() is inspecting the bridge/Bond member interfaces it must work
with the real interface (e.g. eth1) under the "ethernet" node and not work on
the "member interface eth1" CLI tree, that makes no sense at all.
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/configdict.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/python/vyos/configdict.py b/python/vyos/configdict.py index 78225f8d4..e9ef39930 100644 --- a/python/vyos/configdict.py +++ b/python/vyos/configdict.py @@ -201,11 +201,12 @@ def is_member(conf, interface, intftype=None): intftype is optional, if not passed it will search all known types (currently bridge and bonding) - Returns: - None -> Interface is not a member - interface name -> Interface is a member of this interface - False -> interface type cannot have members + Returns: dict + empty -> Interface is not a member + key -> Interface is a member of this interface """ + from vyos.ifconfig import Section + ret_val = {} intftypes = ['bonding', 'bridge'] @@ -221,9 +222,8 @@ def is_member(conf, interface, intftype=None): for intf in conf.list_nodes(base): member = base + [intf, 'member', 'interface', interface] if conf.exists(member): - tmp = conf.get_config_dict(member, key_mangling=('-', '_'), - get_first_key=True, no_tag_node_value_mangle=True) - ret_val.update({intf : tmp}) + if conf.exists(['interfaces', Section.section(interface), interface]): + ret_val.update({intf : {}}) return ret_val |