diff options
| -rw-r--r-- | data/templates/high-availability/keepalived.conf.j2 | 2 | ||||
| -rw-r--r-- | interface-definitions/high-availability.xml.in | 6 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_high-availability_virtual-server.py | 7 |
3 files changed, 14 insertions, 1 deletions
diff --git a/data/templates/high-availability/keepalived.conf.j2 b/data/templates/high-availability/keepalived.conf.j2 index a45befdb6..f69230f8b 100644 --- a/data/templates/high-availability/keepalived.conf.j2 +++ b/data/templates/high-availability/keepalived.conf.j2 @@ -228,7 +228,9 @@ virtual_server fwmark {{ vserver_config.fwmark }} { {% elif vserver_config.forward_method is vyos_defined('tunnel') %} lb_kind TUN {% endif %} +{% if vserver_config.persistence_timeout | int > 0 %} persistence_timeout {{ vserver_config.persistence_timeout }} +{% endif %} protocol {{ vserver_config.protocol | upper }} {% if vserver_config.real_server is vyos_defined %} {% for rserver, rserver_config in vserver_config.real_server.items() %} diff --git a/interface-definitions/high-availability.xml.in b/interface-definitions/high-availability.xml.in index 70ac308a3..11ea91309 100644 --- a/interface-definitions/high-availability.xml.in +++ b/interface-definitions/high-availability.xml.in @@ -513,11 +513,15 @@ <properties> <help>Timeout for persistent connections</help> <valueHelp> + <format>u32:0</format> + <description>Disable persistent connections</description> + </valueHelp> + <valueHelp> <format>u32:1-86400</format> <description>Timeout for persistent connections</description> </valueHelp> <constraint> - <validator name="numeric" argument="--range 1-86400"/> + <validator name="numeric" argument="--range 0-86400"/> </constraint> </properties> <defaultValue>300</defaultValue> diff --git a/smoketest/scripts/cli/test_high-availability_virtual-server.py b/smoketest/scripts/cli/test_high-availability_virtual-server.py index 1e243278e..7939f139e 100755 --- a/smoketest/scripts/cli/test_high-availability_virtual-server.py +++ b/smoketest/scripts/cli/test_high-availability_virtual-server.py @@ -83,6 +83,13 @@ class TestHAVirtualServer(VyOSUnitTestSHIM.TestCase): self.assertIn(f'{proto.upper()}_CHECK', config) self.assertIn(f'connect_timeout {connection_timeout}', config) + # Verify persistence_timeout is not set when value is 0 + self.cli_set(vserver_base + [vs, 'persistence-timeout', '0']) + self.cli_commit() + + config = read_file(KEEPALIVED_CONF) + self.assertNotIn('persistence_timeout', config) + def test_02_ha_virtual_server_and_vrrp(self): algo = 'least-connection' delay = '15' |
