From 4b2a38d93c4e8f604ec3deb2fa678529962b42a7 Mon Sep 17 00:00:00 2001 From: Adam Harwell Date: Thu, 9 Apr 2020 18:18:15 -0700 Subject: [PATCH] Correct delay between UDP healthchecks Template was using timeout value instead of delay value. Also clean up redundant values in the templates (things like retry and delay_before_retry only need to be specified once at the top level). Change-Id: I376917e40eb7a92f7f03e691ed9a0c23fd2ce8f8 --- octavia/common/jinja/lvs/templates/macros.j2 | 12 +----- .../common/jinja/lvs/test_lvs_jinja_cfg.py | 40 ++++++------------- ...d-on-correct-setting-6a60856de2927ccd.yaml | 5 +++ 3 files changed, 19 insertions(+), 38 deletions(-) create mode 100644 releasenotes/notes/udp-delay-based-on-correct-setting-6a60856de2927ccd.yaml diff --git a/octavia/common/jinja/lvs/templates/macros.j2 b/octavia/common/jinja/lvs/templates/macros.j2 index dd4ef11f60..2c719c3cd4 100644 --- a/octavia/common/jinja/lvs/templates/macros.j2 +++ b/octavia/common/jinja/lvs/templates/macros.j2 @@ -25,18 +25,12 @@ misc_path "{{ health_monitor.check_script_path }} {{ member.monitor_address|defa {%- macro misc_check_macro(pool, member, health_monitor) -%} MISC_CHECK { {{ misc_path_macro(member, health_monitor) }} - misc_timeout {{ pool.health_monitor.delay }} + misc_timeout {{ pool.health_monitor.timeout }} } {%- endmacro -%} {% macro health_monitor_rs_macro(constants, pool, member) %} {% if pool.health_monitor and pool.health_monitor.enabled %} - {% if pool.health_monitor.timeout %} - delay_before_retry {{ pool.health_monitor.timeout }} - {% endif %} - {% if pool.health_monitor.fall_threshold %} - retry {{ pool.health_monitor.fall_threshold }} - {% endif %} {% if pool.health_monitor.type == constants.HEALTH_MONITOR_UDP_CONNECT %} {{ misc_check_macro(pool, member, pool.health_monitor) -}} {% endif %} @@ -62,9 +56,7 @@ MISC_CHECK { {% if default_pool and default_pool.health_monitor and default_pool.health_monitor.enabled %} {% if default_pool.health_monitor.delay %} delay_loop {{ default_pool.health_monitor.delay }} - {% endif %} - {% if default_pool.health_monitor.timeout %} - delay_before_retry {{ default_pool.health_monitor.timeout }} + delay_before_retry {{ default_pool.health_monitor.delay }} {% endif %} {% if default_pool.health_monitor.fall_threshold %} retry {{ default_pool.health_monitor.fall_threshold }} diff --git a/octavia/tests/unit/common/jinja/lvs/test_lvs_jinja_cfg.py b/octavia/tests/unit/common/jinja/lvs/test_lvs_jinja_cfg.py index c77102a9bf..83a0c3bd71 100644 --- a/octavia/tests/unit/common/jinja/lvs/test_lvs_jinja_cfg.py +++ b/octavia/tests/unit/common/jinja/lvs/test_lvs_jinja_cfg.py @@ -46,7 +46,7 @@ class TestLvsCfg(base.TestCase): " persistence_timeout 33\n" " persistence_granularity 255.255.0.0\n" " delay_loop 30\n" - " delay_before_retry 31\n" + " delay_before_retry 30\n" " retry 3\n\n\n" " # Configuration for Pool sample_pool_id_1\n" " # Configuration for HealthMonitor sample_monitor_id_1\n" @@ -54,24 +54,20 @@ class TestLvsCfg(base.TestCase): " real_server 10.0.0.99 82 {\n" " weight 13\n" " uthreshold 98\n" - " delay_before_retry 31\n" - " retry 3\n" " MISC_CHECK {\n" " misc_path \"/var/lib/octavia/lvs/check/" "udp_check.sh 10.0.0.99 82\"\n" - " misc_timeout 30\n" + " misc_timeout 31\n" " }\n" " }\n\n" " # Configuration for Member sample_member_id_2\n" " real_server 10.0.0.98 82 {\n" " weight 13\n" " uthreshold 98\n" - " delay_before_retry 31\n" - " retry 3\n" " MISC_CHECK {\n" " misc_path \"/var/lib/octavia/lvs/check/" "udp_check.sh 10.0.0.98 82\"\n" - " misc_timeout 30\n" + " misc_timeout 31\n" " }\n" " }\n\n" "}\n\n") @@ -94,7 +90,7 @@ class TestLvsCfg(base.TestCase): " lb_kind NAT\n" " protocol UDP\n" " delay_loop 30\n" - " delay_before_retry 31\n" + " delay_before_retry 30\n" " retry 3\n\n\n" " # Configuration for Pool sample_pool_id_1\n" " # Configuration for HealthMonitor sample_monitor_id_1\n" @@ -102,24 +98,20 @@ class TestLvsCfg(base.TestCase): " real_server 10.0.0.99 82 {\n" " weight 13\n" " uthreshold 98\n" - " delay_before_retry 31\n" - " retry 3\n" " MISC_CHECK {\n" " misc_path \"/var/lib/octavia/lvs/check/" "udp_check.sh 10.0.0.99 82\"\n" - " misc_timeout 30\n" + " misc_timeout 31\n" " }\n" " }\n\n" " # Configuration for Member sample_member_id_2\n" " real_server 10.0.0.98 82 {\n" " weight 13\n" " uthreshold 98\n" - " delay_before_retry 31\n" - " retry 3\n" " MISC_CHECK {\n" " misc_path \"/var/lib/octavia/lvs/check/" "udp_check.sh 10.0.0.98 82\"\n" - " misc_timeout 30\n" + " misc_timeout 31\n" " }\n" " }\n\n" "}\n\n") @@ -141,7 +133,7 @@ class TestLvsCfg(base.TestCase): " lb_kind NAT\n" " protocol UDP\n" " delay_loop 30\n" - " delay_before_retry 31\n" + " delay_before_retry 30\n" " retry 3\n\n\n" " # Configuration for Pool sample_pool_id_1\n" " # Configuration for HealthMonitor sample_monitor_id_1\n" @@ -149,24 +141,20 @@ class TestLvsCfg(base.TestCase): " real_server 10.0.0.99 82 {\n" " weight 13\n" " uthreshold 98\n" - " delay_before_retry 31\n" - " retry 3\n" " MISC_CHECK {\n" " misc_path \"/var/lib/octavia/lvs/check/" "udp_check.sh 10.0.0.99 82\"\n" - " misc_timeout 30\n" + " misc_timeout 31\n" " }\n" " }\n\n" " # Configuration for Member sample_member_id_2\n" " real_server 10.0.0.98 82 {\n" " weight 13\n" " uthreshold 98\n" - " delay_before_retry 31\n" - " retry 3\n" " MISC_CHECK {\n" " misc_path \"/var/lib/octavia/lvs/check/" "udp_check.sh 10.0.0.98 82\"\n" - " misc_timeout 30\n" + " misc_timeout 31\n" " }\n" " }\n\n" "}\n\n") @@ -188,7 +176,7 @@ class TestLvsCfg(base.TestCase): " lb_kind NAT\n" " protocol UDP\n" " delay_loop 30\n" - " delay_before_retry 31\n" + " delay_before_retry 30\n" " retry 3\n\n\n" " # Configuration for Pool sample_pool_id_1\n" " # Configuration for HealthMonitor sample_monitor_id_1\n" @@ -196,24 +184,20 @@ class TestLvsCfg(base.TestCase): " real_server 10.0.0.99 82 {\n" " weight 13\n" " uthreshold 98\n" - " delay_before_retry 31\n" - " retry 3\n" " MISC_CHECK {\n" " misc_path \"/var/lib/octavia/lvs/check/" "udp_check.sh 192.168.1.1 9000\"\n" - " misc_timeout 30\n" + " misc_timeout 31\n" " }\n" " }\n\n" " # Configuration for Member sample_member_id_2\n" " real_server 10.0.0.98 82 {\n" " weight 13\n" " uthreshold 98\n" - " delay_before_retry 31\n" - " retry 3\n" " MISC_CHECK {\n" " misc_path \"/var/lib/octavia/lvs/check/" "udp_check.sh 192.168.1.1 9000\"\n" - " misc_timeout 30\n" + " misc_timeout 31\n" " }\n" " }\n\n" "}\n\n") diff --git a/releasenotes/notes/udp-delay-based-on-correct-setting-6a60856de2927ccd.yaml b/releasenotes/notes/udp-delay-based-on-correct-setting-6a60856de2927ccd.yaml new file mode 100644 index 0000000000..2d735aae10 --- /dev/null +++ b/releasenotes/notes/udp-delay-based-on-correct-setting-6a60856de2927ccd.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Delay between checks on UDP healthmonitors was using the incorrect config + value ``timeout``, when it should have been ``delay``.