summaryrefslogtreecommitdiff
path: root/src/conf_mode/interface-bridge.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2019-09-04 21:50:04 +0200
committerChristian Poessinger <christian@poessinger.com>2019-09-04 22:03:10 +0200
commit64d58eda4c1ebaa9d346d65d606d2a75694467ee (patch)
tree4f4c9b9720da401863c664a87e68ceda6a645377 /src/conf_mode/interface-bridge.py
parentff34756f534bfc0f09a5ab6db0d36e1bf43546a8 (diff)
downloadvyos-1x-64d58eda4c1ebaa9d346d65d606d2a75694467ee.tar.gz
vyos-1x-64d58eda4c1ebaa9d346d65d606d2a75694467ee.zip
Python/configdict: add list_diff function to compare two lists
A list containing only unique elements not part of the other list is returned. This is usefull to check e.g. which IP addresses need to be removed from the OS.
Diffstat (limited to 'src/conf_mode/interface-bridge.py')
-rwxr-xr-xsrc/conf_mode/interface-bridge.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/conf_mode/interface-bridge.py b/src/conf_mode/interface-bridge.py
index 1d3587114..b165428ee 100755
--- a/src/conf_mode/interface-bridge.py
+++ b/src/conf_mode/interface-bridge.py
@@ -21,8 +21,10 @@ import os
from copy import deepcopy
from sys import exit
from netifaces import interfaces
-from vyos.config import Config
+
from vyos.ifconfig import BridgeIf, Interface
+from vyos.configdict import list_diff
+from vyos.config import Config
from vyos import ConfigError
default_config_data = {
@@ -46,10 +48,6 @@ default_config_data = {
'stp': 0
}
-def diff(first, second):
- second = set(second)
- return [item for item in first if item not in second]
-
def get_config():
bridge = deepcopy(default_config_data)
conf = Config()
@@ -137,13 +135,13 @@ def get_config():
# interfaces is no longer assigend to the bridge and thus can be removed
eff_intf = conf.list_effective_nodes('member interface')
act_intf = conf.list_nodes('member interface')
- bridge['member_remove'] = diff(eff_intf, act_intf)
+ bridge['member_remove'] = list_diff(eff_intf, act_intf)
# Determine interface addresses (currently effective) - to determine which
# address is no longer valid and needs to be removed from the bridge
eff_addr = conf.return_effective_values('address')
act_addr = conf.return_values('address')
- bridge['address_remove'] = diff(eff_addr, act_addr)
+ bridge['address_remove'] = list_diff(eff_addr, act_addr)
# Priority for this bridge
if conf.exists('priority'):