summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/vyos/configdict.py28
-rw-r--r--python/vyos/ifconfig_vlan.py27
2 files changed, 27 insertions, 28 deletions
diff --git a/python/vyos/configdict.py b/python/vyos/configdict.py
index f26b47e41..a1553ae61 100644
--- a/python/vyos/configdict.py
+++ b/python/vyos/configdict.py
@@ -168,6 +168,33 @@ def node_changed(conf, path):
keys = D.get_child_nodes_diff(path, expand_nodes=Diff.DELETE)['delete'].keys()
return list(keys)
+def get_removed_vlans(conf, dict):
+ """
+ Common function to parse a dictionary retrieved via get_config_dict() and
+ determine any added/removed VLAN interfaces - be it 802.1q or Q-in-Q.
+ """
+ from vyos.configdiff import get_config_diff, Diff
+
+ # Check vif, vif-s/vif-c VLAN interfaces for removal
+ D = get_config_diff(conf, key_mangling=('-', '_'))
+ D.set_level(conf.get_level())
+ # get_child_nodes() will return dict_keys(), mangle this into a list with PEP448
+ keys = D.get_child_nodes_diff(['vif'], expand_nodes=Diff.DELETE)['delete'].keys()
+ if keys:
+ dict.update({'vif_remove': [*keys]})
+
+ # get_child_nodes() will return dict_keys(), mangle this into a list with PEP448
+ keys = D.get_child_nodes_diff(['vif-s'], expand_nodes=Diff.DELETE)['delete'].keys()
+ if keys:
+ dict.update({'vif_s_remove': [*keys]})
+
+ for vif in dict.get('vif_s', {}).keys():
+ keys = D.get_child_nodes_diff(['vif-s', vif, 'vif-c'], expand_nodes=Diff.DELETE)['delete'].keys()
+ if keys:
+ dict.update({'vif_s': { vif : {'vif_c_remove': [*keys]}}})
+
+ return dict
+
def get_interface_dict(config, base, ifname):
"""
Common utility function to retrieve and mandgle the interfaces available
@@ -177,7 +204,6 @@ def get_interface_dict(config, base, ifname):
Will return a dictionary with the necessary interface configuration
"""
from vyos.xml import defaults
- from vyos.ifconfig_vlan import get_removed_vlans
# retrieve interface default values
default_values = defaults(base)
diff --git a/python/vyos/ifconfig_vlan.py b/python/vyos/ifconfig_vlan.py
index 0e4ecda53..442cb0db8 100644
--- a/python/vyos/ifconfig_vlan.py
+++ b/python/vyos/ifconfig_vlan.py
@@ -16,33 +16,6 @@
from netifaces import interfaces
from vyos import ConfigError
-def get_removed_vlans(conf, dict):
- """
- Common function to parse a dictionary retrieved via get_config_dict() and
- determine any added/removed VLAN interfaces - be it 802.1q or Q-in-Q.
- """
- from vyos.configdiff import get_config_diff, Diff
-
- # Check vif, vif-s/vif-c VLAN interfaces for removal
- D = get_config_diff(conf, key_mangling=('-', '_'))
- D.set_level(conf.get_level())
- # get_child_nodes() will return dict_keys(), mangle this into a list with PEP448
- keys = D.get_child_nodes_diff(['vif'], expand_nodes=Diff.DELETE)['delete'].keys()
- if keys:
- dict.update({'vif_remove': [*keys]})
-
- # get_child_nodes() will return dict_keys(), mangle this into a list with PEP448
- keys = D.get_child_nodes_diff(['vif-s'], expand_nodes=Diff.DELETE)['delete'].keys()
- if keys:
- dict.update({'vif_s_remove': [*keys]})
-
- for vif in dict.get('vif_s', {}).keys():
- keys = D.get_child_nodes_diff(['vif-s', vif, 'vif-c'], expand_nodes=Diff.DELETE)['delete'].keys()
- if keys:
- dict.update({'vif_s': { vif : {'vif_c_remove': [*keys]}}})
-
- return dict
-
def apply_all_vlans(intf, intfconfig):
"""
Function applies all VLANs to the passed interface.