diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/configsource.py | 7 | ||||
| -rw-r--r-- | python/vyos/vyconf_session.py | 5 |
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) |
