diff options
author | Christian Poessinger <christian@poessinger.com> | 2019-09-07 15:30:53 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2019-09-07 15:30:55 +0200 |
commit | 6f666f0a62fb98fcab800be813141f44dd1ab8a7 (patch) | |
tree | 8ee80b5149d26a9e8e84ae2cda3b7c37dddb388e | |
parent | a9756cfd49b169e93afe70415ce9155ebf4e5ffa (diff) | |
download | vyos-1x-6f666f0a62fb98fcab800be813141f44dd1ab8a7.tar.gz vyos-1x-6f666f0a62fb98fcab800be813141f44dd1ab8a7.zip |
bonding: T1614: bugfix in validate - enslave failed
Forgot to exclude our current bond interface in the search for duplicate
interface enslavement.
-rwxr-xr-x | src/conf_mode/interface-bonding.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/conf_mode/interface-bonding.py b/src/conf_mode/interface-bonding.py index cd4c447ac..dc0363fb7 100755 --- a/src/conf_mode/interface-bonding.py +++ b/src/conf_mode/interface-bonding.py @@ -272,11 +272,14 @@ def verify(bond): conf = Config() for intf in bond['member']: - # a bond member is only allowed to be assigned to any one bond - for tmp in conf.list_nodes('interfaces bonding'): + # a bonding member interface is only allowed to be assigned to one bond! + all_bonds = conf.list_nodes('interfaces bonding') + # We do not need to check our own bond + all_bonds.remove(bond['intf']) + for tmp in all_bonds: if conf.exists('interfaces bonding ' + tmp + ' member interface ' + intf): raise ConfigError('can not enslave interface {} which already ' \ - 'belongs to bond {}'.format(intf, tmp)) + 'belongs to {}'.format(intf, tmp)) # we can not add disabled slave interfaces to our bond if conf.exists('interfaces ethernet ' + intf + ' disable'): |