diff options
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/config_mgmt.py | 13 | ||||
-rw-r--r-- | python/vyos/configsession.py | 2 | ||||
-rw-r--r-- | python/vyos/utils/backend.py | 6 |
3 files changed, 18 insertions, 3 deletions
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' 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 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 |