diff options
author | Christian Poessinger <christian@poessinger.com> | 2019-08-27 19:50:02 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2019-08-27 19:50:02 +0200 |
commit | 6cbf8db38ddca0c9e3b9cf1a52fc646cc2d5febb (patch) | |
tree | 5ea45b49715128cf21f84d549513c8902b6c50af /src | |
parent | 1ace4a35237889bceff7309df0c687bf32ab89a9 (diff) | |
parent | 34adc76f589cb01406155007ce49c5855764c79c (diff) | |
download | vyos-1x-6cbf8db38ddca0c9e3b9cf1a52fc646cc2d5febb.tar.gz vyos-1x-6cbf8db38ddca0c9e3b9cf1a52fc646cc2d5febb.zip |
Merge branch 't1614-bonding' into current
* t1614-bonding:
Python/VyOS validate: add is_ip() to check for IPv4 or IPv4 address
bridge: T1556: remove unused function freeze()
list-interfaces: T1614: support listing interfaces which can be bonded
Diffstat (limited to 'src')
-rwxr-xr-x | src/completion/list_interfaces.py | 14 | ||||
-rwxr-xr-x | src/conf_mode/interface-bridge.py | 7 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/completion/list_interfaces.py b/src/completion/list_interfaces.py index 66432af19..5e444ef78 100755 --- a/src/completion/list_interfaces.py +++ b/src/completion/list_interfaces.py @@ -2,15 +2,14 @@ import sys import argparse - import vyos.interfaces - parser = argparse.ArgumentParser() group = parser.add_mutually_exclusive_group() group.add_argument("-t", "--type", type=str, help="List interfaces of specific type") group.add_argument("-b", "--broadcast", action="store_true", help="List all broadcast interfaces") group.add_argument("-br", "--bridgeable", action="store_true", help="List all bridgeable interfaces") +group.add_argument("-bo", "--bondable", action="store_true", help="List all bondable interfaces") args = parser.parse_args() @@ -21,11 +20,13 @@ if args.type: except ValueError as e: print(e, file=sys.stderr) print("") + elif args.broadcast: eth = vyos.interfaces.list_interfaces_of_type("ethernet") bridge = vyos.interfaces.list_interfaces_of_type("bridge") bond = vyos.interfaces.list_interfaces_of_type("bonding") interfaces = eth + bridge + bond + elif args.bridgeable: eth = vyos.interfaces.list_interfaces_of_type("ethernet") bond = vyos.interfaces.list_interfaces_of_type("bonding") @@ -34,6 +35,15 @@ elif args.bridgeable: vxlan = vyos.interfaces.list_interfaces_of_type("vxlan") wireless = vyos.interfaces.list_interfaces_of_type("wireless") interfaces = eth + bond + l2tpv3 + openvpn + vxlan + wireless + +elif args.bondable: + eth = vyos.interfaces.list_interfaces_of_type("ethernet") + # we need to filter out VLAN interfaces identified by a dot (.) in their name + for intf in eth: + if '.' in intf: + eth.remove(intf) + interfaces = eth + else: interfaces = vyos.interfaces.list_interfaces() diff --git a/src/conf_mode/interface-bridge.py b/src/conf_mode/interface-bridge.py index 85ea68e26..c1527e4a7 100755 --- a/src/conf_mode/interface-bridge.py +++ b/src/conf_mode/interface-bridge.py @@ -45,13 +45,6 @@ default_config_data = { 'stp': 0 } -def freeze(d): - if isinstance(d, dict): - return frozenset((key, freeze(value)) for key, value in d.items()) - elif isinstance(d, list): - return tuple(freeze(value) for value in d) - return d - def diff(first, second): second = set(second) return [item for item in first if item not in second] |