diff options
| author | Daniil Baturin <daniil@vyos.io> | 2026-06-23 14:46:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-23 14:46:04 +0100 |
| commit | 94f4ac3e938ac8aa11f2e4375ae3e9bd01963e8b (patch) | |
| tree | 96f502278fe2725ae4ab77acf8132c47f628e3ff /python | |
| parent | 3edf114bed538733388252da0d23b49002273558 (diff) | |
| parent | 5b654e5b2847cb87e7ac0366fbd4954673be1943 (diff) | |
| download | vyos-1x-94f4ac3e938ac8aa11f2e4375ae3e9bd01963e8b.tar.gz vyos-1x-94f4ac3e938ac8aa11f2e4375ae3e9bd01963e8b.zip | |
Merge pull request #5252 from natali-rs1985/T8913
vpp: T8913: Skip bond teardown for non-structural config changes
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/ifconfig/vpp/bond.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/python/vyos/ifconfig/vpp/bond.py b/python/vyos/ifconfig/vpp/bond.py index b3bcce449..cece5560d 100644 --- a/python/vyos/ifconfig/vpp/bond.py +++ b/python/vyos/ifconfig/vpp/bond.py @@ -17,6 +17,7 @@ from vyos.ifconfig import Interface from vyos.ifconfig.vpp.interface import VPPInterface +from vyos.utils.dict import dict_search class VPPBondInterface(Interface, VPPInterface): @@ -135,13 +136,24 @@ class VPPBondInterface(Interface, VPPInterface): # Delete bonding interface self.delete_bond() + self.index = None + def update(self, config): # Add bond interface - self.add_bond() + if self.index is None: + self.add_bond() + + # Delete removed members + members = self.get_members() + config_members = dict_search('member.interface', config, default=[]) + for member in members: + if member not in config_members: + self.detach_member(interface=member) # Add members to bond - for member in config.get('member', {}).get('interface', []): - self.add_member(interface=member) + for member in config_members: + if member not in members: + self.add_member(interface=member) # Apply VPP-specific interface settings VPPInterface.update(self, config) |
