diff options
| author | Daniil Baturin <daniil@vyos.io> | 2026-02-12 14:16:57 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-12 14:16:57 +0000 |
| commit | 6ebd5d80f9a212beba6352494392ae811f66d64e (patch) | |
| tree | bb70c867d45318ab5d15bbde87b0079d716c277f /src/reference_tree.ml | |
| parent | 6cf3918875b11dd94f9dc380b4083cc4258da74c (diff) | |
| parent | 5d201299b11e736e3a2c682e62d17cb9f2ef120a (diff) | |
| download | vyos1x-config-6ebd5d80f9a212beba6352494392ae811f66d64e.tar.gz vyos1x-config-6ebd5d80f9a212beba6352494392ae811f66d64e.zip | |
Merge pull request #65 from jestabro/config-dict
T8232: Simplify and extend config_dict construction
Diffstat (limited to 'src/reference_tree.ml')
| -rw-r--r-- | src/reference_tree.ml | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/reference_tree.ml b/src/reference_tree.ml index 81e45cf..10cc833 100644 --- a/src/reference_tree.ml +++ b/src/reference_tree.ml @@ -94,6 +94,8 @@ let default_data = { let default = Vytree.make default_data "" +let make name = Vytree.make default_data name + (* Loading from XML *) let node_type_of_string s = @@ -602,6 +604,22 @@ let get_default_value reftree path = let data = (Vytree.get_data[@alert "-exn"]) reftree path in data.default_value +let get_subtree ?(with_node=false) node path = + (* alert exn Vytree.get: + [Vytree.Empty_path] checked + [Vytree.Nonexistent_path] caught + *) + match path with + | [] -> node + | _ -> + try + let n = (Vytree.get[@alert "-exn"]) node path in + if with_node then + Vytree.make_full default_data "" [n] + else + Vytree.make_full default_data "" (Vytree.children_of_node n) + with Vytree.Nonexistent_path -> make "" + (* Convert from config path to reference tree path *) let refpath reftree path = let check_existence p = @@ -933,7 +951,7 @@ let validate_tree_filter dir rt ct = List.fold_left try_validate (p, (ctree, out)) l' in let tree, out = - snd (Vytree.fold_tree_with_path validate_path_filter ([], (ct, "")) ct) + Vytree.fold_tree_with_path validate_path_filter ([], (ct, "")) ct in tree, out |
