diff options
author | Christian Breunig <christian@breunig.cc> | 2024-06-11 10:00:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-11 10:00:41 +0200 |
commit | 0deb3933a161c54b3b726ce304727c3fff869500 (patch) | |
tree | 59c32f2ce9c04d153316898ce08ca4766033541b /python/vyos/utils | |
parent | 3f931cca3c5dac40a2ea097caf323a05b3e45ca0 (diff) | |
parent | 1a164852d2cb4cb8db80274d8b1fba90854e9b20 (diff) | |
download | vyos-1x-0deb3933a161c54b3b726ce304727c3fff869500.tar.gz vyos-1x-0deb3933a161c54b3b726ce304727c3fff869500.zip |
Merge pull request #3628 from jestabro/op-mode-config-dict
op-mode: T6471: add optimized get_config_dict
Diffstat (limited to 'python/vyos/utils')
-rw-r--r-- | python/vyos/utils/dict.py | 7 | ||||
-rw-r--r-- | python/vyos/utils/error.py | 24 |
2 files changed, 31 insertions, 0 deletions
diff --git a/python/vyos/utils/dict.py b/python/vyos/utils/dict.py index d36b6fcfb..062ab9c81 100644 --- a/python/vyos/utils/dict.py +++ b/python/vyos/utils/dict.py @@ -307,6 +307,13 @@ def dict_to_paths(d: dict) -> list: for r in func(d, []): yield r +def embed_dict(p: list[str], d: dict) -> dict: + path = p.copy() + ret = d + while path: + ret = {path.pop(): ret} + return ret + def check_mutually_exclusive_options(d, keys, required=False): """ Checks if a dict has at most one or only one of mutually exclusive keys. diff --git a/python/vyos/utils/error.py b/python/vyos/utils/error.py new file mode 100644 index 000000000..8d4709bff --- /dev/null +++ b/python/vyos/utils/error.py @@ -0,0 +1,24 @@ +# Copyright 2024 VyOS maintainers and contributors <maintainers@vyos.io> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this library. If not, see <http://www.gnu.org/licenses/>. + +from enum import IntEnum + +class cli_shell_api_err(IntEnum): + """ vyatta-cfg/src/vyos-errors.h """ + VYOS_SUCCESS = 0 + VYOS_GENERAL_FAILURE = 1 + VYOS_INVALID_PATH = 2 + VYOS_EMPTY_CONFIG = 3 + VYOS_CONFIG_PARSE_ERROR = 4 |