summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2023-05-11 20:34:47 -0500
committerGitHub <noreply@github.com>2023-05-11 20:34:47 -0500
commit25545b1e3cf2e94f3521e4ed80ce744f4b08683e (patch)
treed93ace5d92972db701565aa4f54c3d60457723c6
parent59b8b3879a3f0f276501d01c1311b4b37cfb6c36 (diff)
parent00b48dfa0a1576242c5e67583375e8f4699be785 (diff)
downloadvyos-1x-25545b1e3cf2e94f3521e4ed80ce744f4b08683e.tar.gz
vyos-1x-25545b1e3cf2e94f3521e4ed80ce744f4b08683e.zip
Merge pull request #1999 from dmbaturin/T5251-vrrp-group-ping-fix
vrrp: T5215: fix the commit error when health check is not configured
-rw-r--r--python/vyos/utils/dict.py2
-rwxr-xr-xsrc/conf_mode/high-availability.py10
2 files changed, 9 insertions, 3 deletions
diff --git a/python/vyos/utils/dict.py b/python/vyos/utils/dict.py
index 4afc9f54e..7c93deef6 100644
--- a/python/vyos/utils/dict.py
+++ b/python/vyos/utils/dict.py
@@ -253,4 +253,4 @@ def check_mutually_exclusive_options(d, keys, required=False):
raise ValueError(f"Options {orig_keys} are mutually-exclusive but more than one of them is present: {orig_present_keys}")
if required and (len(present_keys) < 1):
- raise ValueError(f"At least one of the following options is required: {orig_present_keys}")
+ raise ValueError(f"At least one of the following options is required: {orig_keys}")
diff --git a/src/conf_mode/high-availability.py b/src/conf_mode/high-availability.py
index 7a63f5b4b..e18b426b1 100755
--- a/src/conf_mode/high-availability.py
+++ b/src/conf_mode/high-availability.py
@@ -21,6 +21,7 @@ from ipaddress import ip_interface
from ipaddress import IPv4Interface
from ipaddress import IPv6Interface
+from vyos.base import Warning
from vyos.config import Config
from vyos.configdict import dict_merge
from vyos.ifconfig.vrrp import VRRP
@@ -107,11 +108,16 @@ def verify(ha):
raise ConfigError(f'Authentication requires both type and passwortd to be set in VRRP group "{group}"')
if 'health_check' in group_config:
+ health_check_types = ["script", "ping"]
from vyos.utils.dict import check_mutually_exclusive_options
try:
- check_mutually_exclusive_options(group_config["health_check"], ["script", "ping"], required=True)
+ check_mutually_exclusive_options(group_config["health_check"], health_check_types, required=True)
except ValueError as e:
- raise ConfigError(f'Health check config is incorrect in VRRP group "{group}": {e}')
+ Warning(f'Health check configuration for VRRP group "{group}" will remain unused ' \
+ f'until it has one of the following options: {health_check_types}')
+ # XXX: health check has default options so we need to remove it
+ # to avoid generating useless config statements in keepalived.conf
+ del group_config["health_check"]
# Keepalived doesn't allow mixing IPv4 and IPv6 in one group, so we mirror that restriction
# We also need to make sure VRID is not used twice on the same interface with the