diff options
| author | Christian Breunig <christian@breunig.cc> | 2025-10-21 21:02:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-21 21:02:23 +0200 |
| commit | 9e1cb14a5eb1eedd1fce67732ad84f6528e30314 (patch) | |
| tree | 9c21ef35446f1e94940a0f3a20d41e1bc1ad4bd5 /python | |
| parent | 2de4e9df6382edbb4b2af6148ef267854fa7ebbf (diff) | |
| parent | f87b522967bb7e3354278628d5d6ef9356a87948 (diff) | |
| download | vyos-1x-9e1cb14a5eb1eedd1fce67732ad84f6528e30314.tar.gz vyos-1x-9e1cb14a5eb1eedd1fce67732ad84f6528e30314.zip | |
Merge pull request #4792 from sarthurdev/kea_config
kea: T7925: Improve error handling, validate IPv6 PD prefix length
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/kea.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/python/vyos/kea.py b/python/vyos/kea.py index 5ce6f47f1..f48cf293d 100644 --- a/python/vyos/kea.py +++ b/python/vyos/kea.py @@ -15,6 +15,7 @@ import json import os +import re import socket from datetime import datetime @@ -25,7 +26,7 @@ from vyos.template import is_ipv6 from vyos.template import netmask_from_cidr from vyos.utils.dict import dict_search_args from vyos.utils.file import file_permissions -from vyos.utils.process import run +from vyos.utils.process import run, rc_cmd kea4_options = { 'name_server': 'domain-name-servers', @@ -86,6 +87,14 @@ def _find_list_of_dict_index(lst, key='ip', value=''): idx = next((index for (index, d) in enumerate(lst) if d[key] == value), None) return idx +def kea_test_config(process: str, config_path: str) -> tuple[bool, str]: + result, output = rc_cmd(f'{process} -t {config_path}') + + if result == 0: + return (True, None) + + find = re.search(r'Error encountered:\s([^\n$]+)', output) + return (False, find[1] if find else None) def kea_parse_options(config): options = [] |
