summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/vyos/configsource.py7
-rw-r--r--python/vyos/vyconf_session.py5
2 files changed, 8 insertions, 4 deletions
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)