diff options
author | John Estabrook <jestabro@vyos.io> | 2025-05-28 19:49:31 -0500 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2025-05-29 22:09:24 -0500 |
commit | b73fc84c4ab50a4007ecdddc9417e2012d2ea11a (patch) | |
tree | fa99f70275e557aad2caf0d24049bd5b9f9c3f79 /python | |
parent | 08dc2e56bf4ad487709ec3849fe97ec24d5b35fe (diff) | |
download | vyos-1x-b73fc84c4ab50a4007ecdddc9417e2012d2ea11a.tar.gz vyos-1x-b73fc84c4ab50a4007ecdddc9417e2012d2ea11a.zip |
http-api: T3955: add commit-confirm to endpoints /configure /config-file
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/config_mgmt.py | 6 | ||||
-rw-r--r-- | python/vyos/configsession.py | 21 | ||||
-rw-r--r-- | python/vyos/defaults.py | 2 |
3 files changed, 25 insertions, 4 deletions
diff --git a/python/vyos/config_mgmt.py b/python/vyos/config_mgmt.py index 308eb1cdb..9522dc08f 100644 --- a/python/vyos/config_mgmt.py +++ b/python/vyos/config_mgmt.py @@ -44,6 +44,7 @@ from vyos.utils.io import ask_yes_no from vyos.utils.boot import boot_configuration_complete from vyos.utils.process import is_systemd_service_active from vyos.utils.process import rc_cmd +from vyos.defaults import DEFAULT_COMMIT_CONFIRM_MINUTES SAVE_CONFIG = '/usr/libexec/vyos/vyos-save-config.py' config_json = '/run/vyatta/config/config.json' @@ -56,7 +57,6 @@ commit_hooks = { 'commit_archive': '02vyos-commit-archive', } -DEFAULT_TIME_MINUTES = 10 timer_name = 'commit-confirm' config_file = os.path.join(directories['config'], 'config.boot') @@ -183,7 +183,7 @@ class ConfigMgmt: # Console script functions # def commit_confirm( - self, minutes: int = DEFAULT_TIME_MINUTES, no_prompt: bool = False + self, minutes: int = DEFAULT_COMMIT_CONFIRM_MINUTES, no_prompt: bool = False ) -> Tuple[str, int]: """Commit with reload/reboot to saved config in 'minutes' minutes if 'confirm' call is not issued. @@ -807,7 +807,7 @@ def run(): '-t', dest='minutes', type=int, - default=DEFAULT_TIME_MINUTES, + default=DEFAULT_COMMIT_CONFIRM_MINUTES, help="Minutes until reboot, unless 'confirm'", ) commit_confirm.add_argument( diff --git a/python/vyos/configsession.py b/python/vyos/configsession.py index 4e0dd23a4..f0d636b89 100644 --- a/python/vyos/configsession.py +++ b/python/vyos/configsession.py @@ -25,6 +25,7 @@ from vyos.utils.boot import boot_configuration_complete from vyos.utils.backend import vyconf_backend from vyos.vyconf_session import VyconfSession from vyos.base import Warning as Warn +from vyos.defaults import DEFAULT_COMMIT_CONFIRM_MINUTES CLI_SHELL_API = '/bin/cli-shell-api' @@ -32,6 +33,8 @@ SET = '/opt/vyatta/sbin/my_set' DELETE = '/opt/vyatta/sbin/my_delete' COMMENT = '/opt/vyatta/sbin/my_comment' COMMIT = '/opt/vyatta/sbin/my_commit' +COMMIT_CONFIRM = ['/usr/bin/config-mgmt', 'commit_confirm', '-y'] +CONFIRM = ['/usr/bin/config-mgmt', 'confirm'] DISCARD = '/opt/vyatta/sbin/my_discard' SHOW_CONFIG = ['/bin/cli-shell-api', 'showConfig'] LOAD_CONFIG = ['/bin/cli-shell-api', 'loadFile'] @@ -300,6 +303,22 @@ class ConfigSession(object): return out + def commit_confirm(self, minutes: int = DEFAULT_COMMIT_CONFIRM_MINUTES): + if self._vyconf_session is None: + out = self.__run_command(COMMIT_CONFIRM + [f'-t {minutes}']) + else: + out = 'unimplemented' + + return out + + def confirm(self): + if self._vyconf_session is None: + out = self.__run_command(CONFIRM) + else: + out = 'unimplemented' + + return out + def discard(self): if self._vyconf_session is None: self.__run_command([DISCARD]) @@ -344,7 +363,7 @@ class ConfigSession(object): if self._vyconf_session is None: out = self.__run_command(MERGE_CONFIG + [file_path]) else: - out, _ = 'unimplemented' + out = 'unimplemented' return out diff --git a/python/vyos/defaults.py b/python/vyos/defaults.py index e42d92112..b57dcac89 100644 --- a/python/vyos/defaults.py +++ b/python/vyos/defaults.py @@ -82,3 +82,5 @@ rt_global_vrf = rt_symbolic_names['main'] rt_global_table = rt_symbolic_names['main'] vyconfd_conf = '/etc/vyos/vyconfd.conf' + +DEFAULT_COMMIT_CONFIRM_MINUTES = 10 |