summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2025-08-05 09:55:07 -0500
committerGitHub <noreply@github.com>2025-08-05 09:55:07 -0500
commit8b9eabd3b636ab5bc1542843f265718c2e245baf (patch)
treefd9442397f96bb5b956e77dec88746a0b3eb06ee
parentb9743a6fb473400a8ded6543c37c018389f626a5 (diff)
parent3a502631ede8e1c841f9f40424dad21fb514f504 (diff)
downloadvyos-1x-8b9eabd3b636ab5bc1542843f265718c2e245baf.tar.gz
vyos-1x-8b9eabd3b636ab5bc1542843f265718c2e245baf.zip
Merge pull request #4646 from jestabro/fix-delete-paths
T7688: minor fixes related to management of delete paths
m---------libvyosconfig40
-rw-r--r--python/vyos/configsource.py7
-rw-r--r--python/vyos/vyconf_session.py5
-rwxr-xr-xsrc/helpers/vyconf_cli.py11
4 files changed, 35 insertions, 28 deletions
diff --git a/libvyosconfig b/libvyosconfig
-Subproject 6da131348730ffeeaebf88e02b2f8af48494d8c
+Subproject d0c3b937497cc1132a485372c85ab189653c202
diff --git a/python/vyos/configsource.py b/python/vyos/configsource.py
index 949216722..24a17c711 100644
--- a/python/vyos/configsource.py
+++ b/python/vyos/configsource.py
@@ -354,6 +354,13 @@ class ConfigSourceVyconfSession(ConfigSource):
# cf. T7374
self._level = []
+ def __del__(self):
+ try:
+ if not self._vyconf_session.in_session():
+ self._vyconf_session.teardown()
+ except AttributeError:
+ pass
+
def get_level(self):
return self._level
diff --git a/python/vyos/vyconf_session.py b/python/vyos/vyconf_session.py
index 3cf5fb4e3..4b79073ab 100644
--- a/python/vyos/vyconf_session.py
+++ b/python/vyos/vyconf_session.py
@@ -67,10 +67,6 @@ class VyconfSession:
self.on_error = on_error
- def __del__(self):
- if not self.in_config_session:
- self.teardown()
-
def teardown(self):
vyconf_client.send_request('teardown', token=self.__token)
@@ -223,6 +219,7 @@ class VyconfSession:
@raise_exception
def save_config(self, file: str, append_version: bool = False) -> tuple[str, int]:
+ file = os.path.realpath(file)
out = vyconf_client.send_request('save', token=self.__token, location=file)
if append_version:
append_system_version(file)
diff --git a/src/helpers/vyconf_cli.py b/src/helpers/vyconf_cli.py
index 53542dd63..9a614675b 100755
--- a/src/helpers/vyconf_cli.py
+++ b/src/helpers/vyconf_cli.py
@@ -39,9 +39,12 @@ if hasattr(vs, func_name):
else:
sys.exit(f'Call unimplemented: {func_name}')
-out = func()
-if isinstance(out, bool):
+res = func()
+if isinstance(res, bool):
# for use in shell scripts
- sys.exit(int(not out))
+ sys.exit(int(not res))
-print(out)
+if isinstance(res, tuple):
+ out, err = res
+ print(out)
+ sys.exit(err)