diff options
author | Christian Poessinger <christian@poessinger.com> | 2021-05-15 11:55:03 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-05-15 11:55:03 +0200 |
commit | d7f0cbdc102a1186cec80d0ebf29b8f4ef415435 (patch) | |
tree | 41f9a169952b0e47f5a99fcfa7412feeccb55422 /src/conf_mode/conntrack_sync.py | |
parent | 7792b5319695098418de562dad87bbc0fef6d19c (diff) | |
download | vyos-1x-d7f0cbdc102a1186cec80d0ebf29b8f4ef415435.tar.gz vyos-1x-d7f0cbdc102a1186cec80d0ebf29b8f4ef415435.zip |
conntrack: T3535: add keepalived notifications for node transitions
Diffstat (limited to 'src/conf_mode/conntrack_sync.py')
-rwxr-xr-x | src/conf_mode/conntrack_sync.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/conf_mode/conntrack_sync.py b/src/conf_mode/conntrack_sync.py index e0a414745..7f22fa2dd 100755 --- a/src/conf_mode/conntrack_sync.py +++ b/src/conf_mode/conntrack_sync.py @@ -22,7 +22,9 @@ 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 process_named_running from vyos.util import read_file +from vyos.util import run from vyos.template import render from vyos.template import get_ipv4 from vyos.validate import is_addr_assigned @@ -33,6 +35,11 @@ airbag.enable() config_file = '/run/conntrackd/conntrackd.conf' +def resync_vrrp(): + tmp = run('/usr/libexec/vyos/conf_mode/vrrp.py') + if tmp > 0: + print('ERROR: error restarting VRRP daemon!') + def get_config(config=None): if config: conf = config @@ -99,9 +106,21 @@ def generate(conntrack): def apply(conntrack): if not conntrack: + # Failover mechanism daemon should be indicated that it no longer needs + # to execute conntrackd actions on transition. This is only required + # once when conntrackd is stopped and taken out of service! + if process_named_running('conntrackd'): + resync_vrrp() + call('systemctl stop conntrackd.service') return None + # Failover mechanism daemon should be indicated that it needs to execute + # conntrackd actions on transition. This is only required once when conntrackd + # is started the first time! + if not process_named_running('conntrackd'): + resync_vrrp() + call('systemctl restart conntrackd.service') return None |