diff options
author | John Estabrook <jestabro@vyos.io> | 2023-05-31 14:46:42 -0500 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2023-05-31 15:48:35 -0500 |
commit | 4dbbacc5ff721b6e704e937f5adc23c5b0c1af9b (patch) | |
tree | 666299bca1ce92d54eda3d830bf27408f20997ea /python/vyos/configtree.py | |
parent | c497848082efd62ae8893929afd2530677ce336d (diff) | |
download | vyos-1x-4dbbacc5ff721b6e704e937f5adc23c5b0c1af9b.tar.gz vyos-1x-4dbbacc5ff721b6e704e937f5adc23c5b0c1af9b.zip |
configtree: T5251: catch/raise error in delete and delete_value
Configtree functions delete/delete_value do not check return value of
libvyosconfig functions; raise error on non-zero return value.
Diffstat (limited to 'python/vyos/configtree.py')
-rw-r--r-- | python/vyos/configtree.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/python/vyos/configtree.py b/python/vyos/configtree.py index 19b9838d4..d0cd87464 100644 --- a/python/vyos/configtree.py +++ b/python/vyos/configtree.py @@ -201,7 +201,9 @@ class ConfigTree(object): check_path(path) path_str = " ".join(map(str, path)).encode() - self.__delete(self.__config, path_str) + res = self.__delete(self.__config, path_str) + if (res != 0): + raise ConfigTreeError(f"Path doesn't exist: {path}") if self.__migration: print(f"- op: delete path: {path}") @@ -210,7 +212,14 @@ class ConfigTree(object): check_path(path) path_str = " ".join(map(str, path)).encode() - self.__delete_value(self.__config, path_str, value.encode()) + res = self.__delete_value(self.__config, path_str, value.encode()) + if (res != 0): + if res == 1: + raise ConfigTreeError(f"Path doesn't exist: {path}") + elif res == 2: + raise ConfigTreeError(f"Value doesn't exist: '{value}'") + else: + raise ConfigTreeError() if self.__migration: print(f"- op: delete_value path: {path} value: {value}") |