summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-05-14 21:26:25 +0200
committerChristian Poessinger <christian@poessinger.com>2021-05-14 21:39:46 +0200
commit3fc9b2fb79fd3e27a5034804e5243fe2e4ec40c3 (patch)
tree06bbf47d590425224c27594cdc50b5af5628e428 /src
parentcd59f198366ce58a01887e4f900a746d5b10b161 (diff)
downloadvyos-1x-3fc9b2fb79fd3e27a5034804e5243fe2e4ec40c3.tar.gz
vyos-1x-3fc9b2fb79fd3e27a5034804e5243fe2e4ec40c3.zip
conntrack: T3535: check for VRRP group definition
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/conntrack_sync.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/conf_mode/conntrack_sync.py b/src/conf_mode/conntrack_sync.py
index c1c90d1fc..e0a414745 100755
--- a/src/conf_mode/conntrack_sync.py
+++ b/src/conf_mode/conntrack_sync.py
@@ -21,6 +21,7 @@ from vyos.config import Config
from vyos.configdict import dict_merge
from vyos.configverify import verify_interface_exists
from vyos.util import call
+from vyos.util import dict_search
from vyos.util import read_file
from vyos.template import render
from vyos.template import get_ipv4
@@ -51,6 +52,9 @@ def get_config(config=None):
conntrack['hash_size'] = read_file('/sys/module/nf_conntrack/parameters/hashsize')
conntrack['table_size'] = read_file('/proc/sys/net/netfilter/nf_conntrack_max')
+ conntrack['vrrp'] = conf.get_config_dict(['high-availability', 'vrrp', 'sync-group'],
+ get_first_key=True)
+
return conntrack
def verify(conntrack):
@@ -75,6 +79,12 @@ def verify(conntrack):
if not is_addr_assigned(address):
raise ConfigError(f'Specified listen-address {address} not assigned to any interface!')
+ vrrp_group = dict_search('failover_mechanism.vrrp.sync_group', conntrack)
+ if vrrp_group == None:
+ raise ConfigError(f'No VRRP sync-group defined!')
+ if vrrp_group not in conntrack['vrrp']:
+ raise ConfigError(f'VRRP sync-group {vrrp_group} not configured!')
+
return None
def generate(conntrack):