summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2025-04-10 15:06:31 +0100
committerGitHub <noreply@github.com>2025-04-10 15:06:31 +0100
commitca4810e5e1ab1e24f552dbcaf93d205b9cbf34c1 (patch)
treef7e87ca9f164c41ccf9f1af6f84d59dacec5d237 /python
parenta8aa9843466511cf165a8ff8db6c8d2124c69364 (diff)
parente84d8bcb3affc501278ff7ccc55f210f7c6cdf54 (diff)
downloadvyos-1x-ca4810e5e1ab1e24f552dbcaf93d205b9cbf34c1.tar.gz
vyos-1x-ca4810e5e1ab1e24f552dbcaf93d205b9cbf34c1.zip
Merge pull request #4435 from jestabro/commit-dry-run
T7302: add vyos-commitd support for commit dry-run
Diffstat (limited to 'python')
-rw-r--r--python/vyos/config.py12
-rw-r--r--python/vyos/configdep.py9
2 files changed, 19 insertions, 2 deletions
diff --git a/python/vyos/config.py b/python/vyos/config.py
index 1fab46761..546eeceab 100644
--- a/python/vyos/config.py
+++ b/python/vyos/config.py
@@ -149,6 +149,18 @@ class Config(object):
return self._running_config
return self._session_config
+ def get_bool_attr(self, attr) -> bool:
+ if not hasattr(self, attr):
+ return False
+ else:
+ tmp = getattr(self, attr)
+ if not isinstance(tmp, bool):
+ return False
+ return tmp
+
+ def set_bool_attr(self, attr, val):
+ setattr(self, attr, val)
+
def _make_path(self, path):
# Backwards-compatibility stuff: original implementation used string paths
# libvyosconfig paths are lists, but since node names cannot contain whitespace,
diff --git a/python/vyos/configdep.py b/python/vyos/configdep.py
index cf7c9d543..747af8dbe 100644
--- a/python/vyos/configdep.py
+++ b/python/vyos/configdep.py
@@ -102,11 +102,16 @@ def run_config_mode_script(target: str, config: 'Config'):
mod = load_as_module(name, path)
config.set_level([])
+ dry_run = config.get_bool_attr('dry_run')
try:
c = mod.get_config(config)
mod.verify(c)
- mod.generate(c)
- mod.apply(c)
+ if not dry_run:
+ mod.generate(c)
+ mod.apply(c)
+ else:
+ if hasattr(mod, 'call_dependents'):
+ mod.call_dependents()
except (VyOSError, ConfigError) as e:
raise ConfigError(str(e)) from e