summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2025-03-16 21:04:21 -0500
committerJohn Estabrook <jestabro@vyos.io>2025-03-16 23:55:12 -0500
commit33394e41516a7a7591629e913c7f981e2494e80a (patch)
tree99ff23351aecd04b9f9e2f250143886312eaa3a7 /python
parent467811b32ba4a5a2873cd115b78e83018a346ab9 (diff)
downloadvyos-1x-33394e41516a7a7591629e913c7f981e2494e80a.tar.gz
vyos-1x-33394e41516a7a7591629e913c7f981e2494e80a.zip
T7121: add Config init from internal cache
The internal cache is used as a faster replacement to parsing the active and proposed configs on initialization of a commit session.
Diffstat (limited to 'python')
-rw-r--r--python/vyos/configsource.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/python/vyos/configsource.py b/python/vyos/configsource.py
index 59e5ac8a1..65cef5333 100644
--- a/python/vyos/configsource.py
+++ b/python/vyos/configsource.py
@@ -319,3 +319,13 @@ class ConfigSourceString(ConfigSource):
self._session_config = ConfigTree(session_config_text) if session_config_text else None
except ValueError:
raise ConfigSourceError(f"Init error in {type(self)}")
+
+class ConfigSourceCache(ConfigSource):
+ def __init__(self, running_config_cache=None, session_config_cache=None):
+ super().__init__()
+
+ try:
+ self._running_config = ConfigTree(internal=running_config_cache) if running_config_cache else None
+ self._session_config = ConfigTree(internal=session_config_cache) if session_config_cache else None
+ except ValueError:
+ raise ConfigSourceError(f"Init error in {type(self)}")