diff options
| author | Daniil Baturin <daniil@vyos.io> | 2026-03-12 16:13:10 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-12 16:13:10 +0000 |
| commit | dbe48341d7eb804bdbe4955e7e0728bfea560b88 (patch) | |
| tree | 7d7483818fd36f47581ca28bea4a43bfd8d923e3 /python | |
| parent | af8e4b83017e0c1b28cd1e447f760fdc32e4f2ff (diff) | |
| parent | 78e770e21a2b294566fe8b34ac6497657bbc0b4e (diff) | |
| download | vyos-1x-dbe48341d7eb804bdbe4955e7e0728bfea560b88.tar.gz vyos-1x-dbe48341d7eb804bdbe4955e7e0728bfea560b88.zip | |
Merge pull request #5028 from natali-rs1985/T8342
vpp: T8342: Add verification of members for bond and bridge interfaces
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/vpp/config_deps.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/python/vyos/vpp/config_deps.py b/python/vyos/vpp/config_deps.py index 43cf6036f..a822825c3 100644 --- a/python/vyos/vpp/config_deps.py +++ b/python/vyos/vpp/config_deps.py @@ -74,3 +74,33 @@ def deps_bridge_dict(conf) -> dict[str, list[str]]: bridge_members_dict.update({member_name: bridge_ifaces_list}) return bridge_members_dict + + +def deps_bond_dict(conf) -> dict[str, list[str]]: + """Get a dict of all bonding interface members: + + keys: members + + values: bridge interfaces + + Args: + conf (config): VyOS config object + + Returns: + dict[str, list[str]]: dict of members + """ + bond_members_dict: dict[str, list[str]] = {} + config = conf.get_config_dict( + ['interfaces', 'vpp', 'bonding'], + key_mangling=('-', '_'), + get_first_key=True, + no_tag_node_value_mangle=True, + ) + + for bond_name, bond_config in config.items(): + for member_name in bond_config.get('member', {}).get('interface', []): + bond_ifaces_list = bond_members_dict.get(member_name, []) + bond_ifaces_list.append(bond_name) + bond_members_dict.update({member_name: bond_ifaces_list}) + + return bond_members_dict |
