summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzsdc <taras@vyos.io>2020-04-02 19:49:00 +0300
committerzsdc <taras@vyos.io>2020-04-02 19:49:00 +0300
commitdf52a5fdf592c5bbb51ae0844da5df4e89ff632e (patch)
treee7cda3277760749dbb8968be97606af94a2de669
parent9c605ffae490b6fa6f0c0e310ea88c83eee8be9d (diff)
downloadvyos-1x-df52a5fdf592c5bbb51ae0844da5df4e89ff632e.tar.gz
vyos-1x-df52a5fdf592c5bbb51ae0844da5df4e89ff632e.zip
VRRP: T1820: Added transition-script support for sync-groups
Note: if transition-scripts configured for both vrrp instance and sync group, which are it a member of, both scripts will be executed.
-rw-r--r--interface-definitions/vrrp.xml.in39
-rwxr-xr-xsrc/conf_mode/vrrp.py6
2 files changed, 45 insertions, 0 deletions
diff --git a/interface-definitions/vrrp.xml.in b/interface-definitions/vrrp.xml.in
index 89d22f79f..120c7d218 100644
--- a/interface-definitions/vrrp.xml.in
+++ b/interface-definitions/vrrp.xml.in
@@ -254,6 +254,45 @@
</completionHelp>
</properties>
</leafNode>
+ <node name="transition-script">
+ <properties>
+ <help>VRRP transition scripts</help>
+ </properties>
+ <children>
+ <leafNode name="master">
+ <properties>
+ <help>Script to run on VRRP state transition to master</help>
+ <constraint>
+ <validator name="script"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="backup">
+ <properties>
+ <help>Script to run on VRRP state transition to backup</help>
+ <constraint>
+ <validator name="script"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="fault">
+ <properties>
+ <help>Script to run on VRRP state transition to fault</help>
+ <constraint>
+ <validator name="script"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="stop">
+ <properties>
+ <help>Script to run on VRRP state transition to stop</help>
+ <constraint>
+ <validator name="script"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
</children>
</tagNode>
</children>
diff --git a/src/conf_mode/vrrp.py b/src/conf_mode/vrrp.py
index b17f1ce82..b206f0d11 100755
--- a/src/conf_mode/vrrp.py
+++ b/src/conf_mode/vrrp.py
@@ -227,6 +227,12 @@ def get_config():
if conntrack_sync_group == sync_group_name:
sync_group["conntrack_sync"] = True
+ # add transition script configuration
+ sync_group["master_script"] = config.return_value("transition-script master")
+ sync_group["backup_script"] = config.return_value("transition-script backup")
+ sync_group["fault_script"] = config.return_value("transition-script fault")
+ sync_group["stop_script"] = config.return_value("transition-script stop")
+
sync_groups.append(sync_group)
# create a file with dict with proposed configuration