summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/vyos/config_mgmt.py13
-rw-r--r--python/vyos/configsession.py2
-rw-r--r--python/vyos/utils/backend.py6
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