diff options
author | Christian Poessinger <christian@poessinger.com> | 2021-01-16 15:10:13 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-01-16 15:31:23 +0100 |
commit | 86d49dbd7167c261fc6072694db7ee38206f1d94 (patch) | |
tree | cf7743df4a6af26ebcf31b5ade22dfb1b5010722 | |
parent | 497f1866e71fadce33f9f19119f91a3c18263a70 (diff) | |
download | vyos-1x-86d49dbd7167c261fc6072694db7ee38206f1d94.tar.gz vyos-1x-86d49dbd7167c261fc6072694db7ee38206f1d94.zip |
vyos.configdict: node_changed() now accepts key mangling parameter
(cherry picked from commit 452a9c504f472dcaee8c93947a889dab4f8259ce)
-rw-r--r-- | python/vyos/configdict.py | 4 | ||||
-rwxr-xr-x | src/conf_mode/interfaces-bridge.py | 2 | ||||
-rwxr-xr-x | src/conf_mode/interfaces-wireguard.py | 2 | ||||
-rwxr-xr-x | src/conf_mode/policy-local-route.py | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/python/vyos/configdict.py b/python/vyos/configdict.py index e5e758a8b..4f9d3739d 100644 --- a/python/vyos/configdict.py +++ b/python/vyos/configdict.py @@ -126,14 +126,14 @@ def leaf_node_changed(conf, path): return None -def node_changed(conf, path): +def node_changed(conf, path, key_mangling=None): """ Check if a leaf node was altered. If it has been altered - values has been changed, or it was added/removed, we will return the old value. If nothing has been changed, None is returned """ from vyos.configdiff import get_config_diff, Diff - D = get_config_diff(conf, key_mangling=('-', '_')) + 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(path, expand_nodes=Diff.DELETE)['delete'].keys() diff --git a/src/conf_mode/interfaces-bridge.py b/src/conf_mode/interfaces-bridge.py index 7af3e3d7c..5b0046a72 100755 --- a/src/conf_mode/interfaces-bridge.py +++ b/src/conf_mode/interfaces-bridge.py @@ -74,7 +74,7 @@ def get_config(config=None): bridge = get_interface_dict(conf, base) # determine which members have been removed - tmp = node_changed(conf, ['member', 'interface']) + tmp = node_changed(conf, ['member', 'interface'], key_mangling=('-', '_')) if tmp: if 'member' in bridge: bridge['member'].update({'interface_remove': tmp }) diff --git a/src/conf_mode/interfaces-wireguard.py b/src/conf_mode/interfaces-wireguard.py index 7cfc76aa0..3e6320f02 100755 --- a/src/conf_mode/interfaces-wireguard.py +++ b/src/conf_mode/interfaces-wireguard.py @@ -58,7 +58,7 @@ def get_config(config=None): # Determine which Wireguard peer has been removed. # Peers can only be removed with their public key! dict = {} - tmp = node_changed(conf, ['peer']) + tmp = node_changed(conf, ['peer'], key_mangling=('-', '_')) for peer in (tmp or []): pubkey = leaf_node_changed(conf, ['peer', peer, 'pubkey']) if pubkey: diff --git a/src/conf_mode/policy-local-route.py b/src/conf_mode/policy-local-route.py index c4024dce4..013f22665 100755 --- a/src/conf_mode/policy-local-route.py +++ b/src/conf_mode/policy-local-route.py @@ -40,7 +40,7 @@ def get_config(config=None): # delete policy local-route dict = {} - tmp = node_changed(conf, ['policy', 'local-route', 'rule']) + tmp = node_changed(conf, ['policy', 'local-route', 'rule'], key_mangling=('-', '_')) if tmp: for rule in (tmp or []): src = leaf_node_changed(conf, ['policy', 'local-route', 'rule', rule, 'source']) |