summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2023-11-25 20:00:31 -0600
committerJohn Estabrook <jestabro@vyos.io>2023-12-01 09:43:53 -0600
commit4fcf4ce92b7c1de479070f5b392520984564ad16 (patch)
treea94e075ad946c487f58e56ef2966b23b97c22873 /python
parent006931b8f1926a239bb5be4e27eb40bbe071219c (diff)
downloadvyos-1x-4fcf4ce92b7c1de479070f5b392520984564ad16.tar.gz
vyos-1x-4fcf4ce92b7c1de479070f5b392520984564ad16.zip
http-api: T5782: use single config-mode script for https and http-api
Diffstat (limited to 'python')
-rw-r--r--python/vyos/configdiff.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/python/vyos/configdiff.py b/python/vyos/configdiff.py
index 1ec2dfafe..03b06c6d9 100644
--- a/python/vyos/configdiff.py
+++ b/python/vyos/configdiff.py
@@ -165,6 +165,30 @@ class ConfigDiff(object):
return True
return False
+ def node_changed_presence(self, path=[]) -> bool:
+ if self._diff_tree is None:
+ raise NotImplementedError("diff_tree class not available")
+
+ path = self._make_path(path)
+ before = self._diff_tree.left.exists(path)
+ after = self._diff_tree.right.exists(path)
+ return (before and not after) or (not before and after)
+
+ def node_changed_children(self, path=[]) -> list:
+ if self._diff_tree is None:
+ raise NotImplementedError("diff_tree class not available")
+
+ path = self._make_path(path)
+ add = self._diff_tree.add
+ sub = self._diff_tree.sub
+ children = set()
+ if add.exists(path):
+ children.update(add.list_nodes(path))
+ if sub.exists(path):
+ children.update(sub.list_nodes(path))
+
+ return list(children)
+
def get_child_nodes_diff_str(self, path=[]):
ret = {'add': {}, 'change': {}, 'delete': {}}