summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2023-05-31 14:46:42 -0500
committerJohn Estabrook <jestabro@vyos.io>2023-05-31 15:48:35 -0500
commit4dbbacc5ff721b6e704e937f5adc23c5b0c1af9b (patch)
tree666299bca1ce92d54eda3d830bf27408f20997ea
parentc497848082efd62ae8893929afd2530677ce336d (diff)
downloadvyos-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.
-rw-r--r--python/vyos/configtree.py13
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}")