summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2022-07-01 18:16:12 +0100
committerGitHub <noreply@github.com>2022-07-01 18:16:12 +0100
commit51f6402aaacfa6e67b44a13b1113129d5e50ff28 (patch)
tree38cdc48eb2f512473c99a13f1a74d50de1c67344
parent4b5bb19a72facf72678b297d501dccb72b879adc (diff)
parentbe32eddd48205b01170593780874c8bed219b715 (diff)
downloadvyos1x-config-equuleus.tar.gz
vyos1x-config-equuleus.zip
Merge pull request #10 from jestabro/eq-tree-root-nameequuleus
T4491: use empty string for name of config_tree root node
-rw-r--r--src/config_diff.ml12
-rw-r--r--src/config_tree.ml6
-rw-r--r--src/vyos1x_parser.mly2
3 files changed, 10 insertions, 10 deletions
diff --git a/src/config_diff.ml b/src/config_diff.ml
index 604668b..700f037 100644
--- a/src/config_diff.ml
+++ b/src/config_diff.ml
@@ -16,9 +16,9 @@ exception Empty_comparison
module ValueS = Set.Make(struct type t = string let compare = compare end)
let make_diff_trees l r = { left = l; right = r;
- add = ref (Config_tree.make "root");
- sub = ref (Config_tree.make "root");
- inter = ref (Config_tree.make "root");
+ add = ref (Config_tree.make "");
+ sub = ref (Config_tree.make "");
+ inter = ref (Config_tree.make "");
}
let name_of n = Vytree.name_of_node n
@@ -56,7 +56,7 @@ let get_opt_name left_opt right_opt =
let update_path path left_opt right_opt =
let name = get_opt_name left_opt right_opt in
- if name = "root" then path
+ if name = "" then path
else path @ [name]
(* tree diff algorithm: walk the tree pair, calling a function of type
@@ -175,7 +175,7 @@ let trim_trees (trees : diff_trees) ?(recurse=false) (path : string list) (m : c
let tree_at_path path node =
try
let node = Vytree.get node path in
- make Config_tree.default_data "root" [node]
+ make Config_tree.default_data "" [node]
with Vytree.Nonexistent_path -> raise Empty_comparison
(* call recursive diff on config_trees with decorate_trees as the diff_func *)
@@ -195,7 +195,7 @@ let diff_tree path left right =
let add_node = Config_tree.make "add" in
let sub_node = Config_tree.make "sub" in
let int_node = Config_tree.make "inter" in
- let ret = make Config_tree.default_data "root" [add_node; sub_node; int_node] in
+ let ret = make Config_tree.default_data "" [add_node; sub_node; int_node] in
let ret = graft_tree !(trees.add) ret ["add"] in
let ret = graft_tree !(trees.sub) ret ["sub"] in
let ret = graft_tree !(trees.inter) ret ["inter"] in
diff --git a/src/config_tree.ml b/src/config_tree.ml
index 3e97e80..8c95b1f 100644
--- a/src/config_tree.ml
+++ b/src/config_tree.ml
@@ -105,10 +105,10 @@ let get_subtree ?(with_node=false) node path =
try
let n = Vytree.get node path in
if with_node then
- Vytree.make_full default_data "root" [n]
+ Vytree.make_full default_data "" [n]
else
- Vytree.make_full default_data "root" (Vytree.children_of_node n)
- with Vytree.Nonexistent_path -> make "root"
+ Vytree.make_full default_data "" (Vytree.children_of_node n)
+ with Vytree.Nonexistent_path -> make ""
module Renderer =
struct
diff --git a/src/vyos1x_parser.mly b/src/vyos1x_parser.mly
index c31552f..ba1c5a7 100644
--- a/src/vyos1x_parser.mly
+++ b/src/vyos1x_parser.mly
@@ -103,7 +103,7 @@ node_content: n = node { n } | n = leaf_node { n } | n = tag_node { n };
%public config:
| ns = list(node_content); EOF
{
- let root = make "root" in
+ let root = make "" in
let root = List.fold_left Vytree.adopt root (List.rev ns) |> Vytree.merge_children merge_data in
try
List.iter find_duplicate_children (Vytree.children_of_node root);