diff options
author | John Estabrook <jestabro@vyos.io> | 2025-01-06 14:51:38 -0600 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2025-01-15 19:12:00 -0600 |
commit | e90a2781f9eae555097e078b9b11dd0dca6c0acd (patch) | |
tree | 89f360e2bb4312a7af1148edde11046e40afe2e5 /python | |
parent | e8d2994adeb6657e482fd25e187dbbe7dbb3d3dd (diff) | |
download | vyos-1x-e90a2781f9eae555097e078b9b11dd0dca6c0acd.tar.gz vyos-1x-e90a2781f9eae555097e078b9b11dd0dca6c0acd.zip |
T7046: add wrappers for reference tree cache utils
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/configtree.py | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/python/vyos/configtree.py b/python/vyos/configtree.py index 7690983f3..8d27a7e46 100644 --- a/python/vyos/configtree.py +++ b/python/vyos/configtree.py @@ -1,5 +1,5 @@ # configtree -- a standalone VyOS config file manipulation library (Python bindings) -# Copyright (C) 2018-2024 VyOS maintainers and contributors +# Copyright (C) 2018-2025 VyOS maintainers and contributors # # This library is free software; you can redistribute it and/or modify it under the terms of # the GNU Lesser General Public License as published by the Free Software Foundation; @@ -504,6 +504,56 @@ def reference_tree_to_json(from_dir, to_file, internal_cache='', libpath=LIBPATH raise ConfigTreeError(msg) +def merge_reference_tree_cache(cache_dir, primary_name, result_name, libpath=LIBPATH): + try: + __lib = cdll.LoadLibrary(libpath) + __merge_reference_tree_cache = __lib.merge_reference_tree_cache + __merge_reference_tree_cache.argtypes = [c_char_p, c_char_p, c_char_p] + __get_error = __lib.get_error + __get_error.argtypes = [] + __get_error.restype = c_char_p + res = __merge_reference_tree_cache( + cache_dir.encode(), primary_name.encode(), result_name.encode() + ) + except Exception as e: + raise ConfigTreeError(e) + if res == 1: + msg = __get_error().decode() + raise ConfigTreeError(msg) + + +def interface_definitions_to_cache(from_dir, cache_path, libpath=LIBPATH): + try: + __lib = cdll.LoadLibrary(libpath) + __interface_definitions_to_cache = __lib.interface_definitions_to_cache + __interface_definitions_to_cache.argtypes = [c_char_p, c_char_p] + __get_error = __lib.get_error + __get_error.argtypes = [] + __get_error.restype = c_char_p + res = __interface_definitions_to_cache(from_dir.encode(), cache_path.encode()) + except Exception as e: + raise ConfigTreeError(e) + if res == 1: + msg = __get_error().decode() + raise ConfigTreeError(msg) + + +def reference_tree_cache_to_json(cache_path, render_file, libpath=LIBPATH): + try: + __lib = cdll.LoadLibrary(libpath) + __reference_tree_cache_to_json = __lib.reference_tree_cache_to_json + __reference_tree_cache_to_json.argtypes = [c_char_p, c_char_p] + __get_error = __lib.get_error + __get_error.argtypes = [] + __get_error.restype = c_char_p + res = __reference_tree_cache_to_json(cache_path.encode(), render_file.encode()) + except Exception as e: + raise ConfigTreeError(e) + if res == 1: + msg = __get_error().decode() + raise ConfigTreeError(msg) + + class DiffTree: def __init__(self, left, right, path=[], libpath=LIBPATH): if left is None: |