diff options
author | John Estabrook <jestabro@vyos.io> | 2025-04-06 22:02:52 -0500 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2025-04-11 13:32:31 -0500 |
commit | b109872b5c29f401ecf059c7d763f14d8ed51134 (patch) | |
tree | 347b6bc11d0b006251a49af706d20c9edf30530c /src/session.ml | |
parent | 9e8feea52140222c689af1439eb7be63a9e121da (diff) | |
download | vyconf-b109872b5c29f401ecf059c7d763f14d8ed51134.tar.gz vyconf-b109872b5c29f401ecf059c7d763f14d8ed51134.zip |
T7321: add session_changed check
Diffstat (limited to 'src/session.ml')
-rw-r--r-- | src/session.ml | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/session.ml b/src/session.ml index 953df25..8cfe355 100644 --- a/src/session.ml +++ b/src/session.ml @@ -1,4 +1,5 @@ module CT = Vyos1x.Config_tree +module CD = Vyos1x.Config_diff module VT = Vyos1x.Vytree module RT = Vyos1x.Reference_tree module D = Directories @@ -110,6 +111,15 @@ let delete w s path = let discard w s = {s with proposed_config=w.running_config} +let session_changed w s = + (* structural equality test requires consistent ordering, which is + * practised, but may be unreliable; test actual difference + *) + let diff = CD.diff_tree [] w.running_config s.proposed_config in + let add_tree = CT.get_subtree diff ["add"] in + let del_tree = CT.get_subtree diff ["del"] in + (del_tree <> CT.default) || (add_tree <> CT.default) + let load w s file = let ct = Vyos1x.Config_file.load_config file in match ct with |