From 9895031eb87a1c37d75dca21636ee712af57b413 Mon Sep 17 00:00:00 2001 From: John Estabrook Date: Sat, 28 Jun 2025 19:11:35 -0500 Subject: T7588: restart vyos-commitd, http-api, after setting vyconf_backend --- python/vyos/utils/backend.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'python') diff --git a/python/vyos/utils/backend.py b/python/vyos/utils/backend.py index 1234e9aa4..d302a2efd 100644 --- a/python/vyos/utils/backend.py +++ b/python/vyos/utils/backend.py @@ -22,6 +22,7 @@ from pathlib import Path from vyos.utils.io import ask_yes_no from vyos.utils.process import call +from vyos.utils.process import is_systemd_service_active VYCONF_SENTINEL = '/run/vyconf_backend' @@ -69,6 +70,8 @@ def vyconf_backend() -> bool: def set_vyconf_backend(value: bool, no_prompt: bool = False): vyconfd_service = 'vyconfd.service' + commitd_service = 'vyos-commitd.service' + http_api_service = 'vyos-http-api.service' match value: case True: if vyconf_backend(): @@ -78,6 +81,9 @@ def set_vyconf_backend(value: bool, no_prompt: bool = False): Path(VYCONF_SENTINEL).touch() chattri(VYCONF_SENTINEL, True) call(f'systemctl restart {vyconfd_service}') + call(f'systemctl restart {commitd_service}') + if is_systemd_service_active(http_api_service): + call(f'systemctl restart {http_api_service}') case False: if not vyconf_backend(): return -- cgit v1.2.3 From 94a6154013e766f786a6e4b6eed86c6d9c6d73de Mon Sep 17 00:00:00 2001 From: John Estabrook Date: Sat, 28 Jun 2025 23:06:46 -0500 Subject: T7588: add missing path arg --- python/vyos/configsession.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'python') diff --git a/python/vyos/configsession.py b/python/vyos/configsession.py index af87d83a0..216069992 100644 --- a/python/vyos/configsession.py +++ b/python/vyos/configsession.py @@ -333,7 +333,7 @@ class ConfigSession(object): if self._vyconf_session is None: config_data = self.__run_command(SHOW_CONFIG + path) else: - config_data, _ = self._vyconf_session.show_config() + config_data, _ = self._vyconf_session.show_config(path) if format == 'raw': return config_data -- cgit v1.2.3 From 67f8a713c862d200a4c69b18fed81cadeee8c4bf Mon Sep 17 00:00:00 2001 From: John Estabrook Date: Wed, 2 Jul 2025 13:39:26 -0500 Subject: T7588: detach commit-confirm-notify from calling process As we now await the call to commit-confirm, do not run commit-confirm-notify from a subshell. --- python/vyos/config_mgmt.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'python') diff --git a/python/vyos/config_mgmt.py b/python/vyos/config_mgmt.py index 67d03e76c..51c6f2241 100644 --- a/python/vyos/config_mgmt.py +++ b/python/vyos/config_mgmt.py @@ -25,10 +25,12 @@ from filecmp import cmp from datetime import datetime from textwrap import dedent from pathlib import Path -from tabulate import tabulate from shutil import copy, chown +from subprocess import Popen +from subprocess import DEVNULL from urllib.parse import urlsplit from urllib.parse import urlunsplit +from tabulate import tabulate from vyos.config import Config from vyos.configtree import ConfigTree @@ -231,7 +233,14 @@ Proceed ?""" else: cmd = f'sudo -b /usr/libexec/vyos/commit-confirm-notify.py {minutes}' - os.system(cmd) + Popen( + cmd.split(), + stdout=DEVNULL, + stderr=DEVNULL, + stdin=DEVNULL, + close_fds=True, + preexec_fn=os.setsid, + ) if self.reboot_unconfirmed: msg = f'Initialized commit-confirm; {minutes} minutes to confirm before reboot' -- cgit v1.2.3