Fix persistence_granularity default value
So far we assiged an ipv4 default value to persistence_granularity when we created a UDP pool with session persistence. This patch adds the condition of ipv6 and assigns its matching netmask value. Story 2009922 Task 44780 Change-Id: I21746515e4ceb0352b4e77708f58873e16d4cdfe
This commit is contained in:
parent
95adbbe618
commit
dd5d3cca6c
@ -133,8 +133,10 @@ virtual_server group ipv{{ ip_version }}-group {
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% if default_pool.session_persistence.persistence_granularity %}
|
{% if default_pool.session_persistence.persistence_granularity %}
|
||||||
persistence_granularity {{ default_pool.session_persistence.persistence_granularity }}
|
persistence_granularity {{ default_pool.session_persistence.persistence_granularity }}
|
||||||
{% else %}
|
{% elif ip_version == 4 %}
|
||||||
persistence_granularity 255.255.255.255
|
persistence_granularity 255.255.255.255
|
||||||
|
{% else %}
|
||||||
|
persistence_granularity 128
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ health_monitor_vs_macro(default_pool) }}
|
{{ health_monitor_vs_macro(default_pool) }}
|
||||||
|
@ -86,6 +86,40 @@ class TestLvsCfg(base.TestCase):
|
|||||||
connection_limit=98))
|
connection_limit=98))
|
||||||
self.assertEqual(exp, rendered_obj)
|
self.assertEqual(exp, rendered_obj)
|
||||||
|
|
||||||
|
def test_render_template_udp_ipv6_session_persistence_default_values(self):
|
||||||
|
# The session persistence default values refer to
|
||||||
|
# persistence_timeout and persistence_granularity
|
||||||
|
exp = ("# Configuration for Loadbalancer sample_loadbalancer_id_1\n"
|
||||||
|
"# Configuration for Listener sample_listener_id_1\n\n"
|
||||||
|
"net_namespace amphora-haproxy\n\n"
|
||||||
|
"virtual_server_group ipv6-group {\n"
|
||||||
|
" 2001:db8::2 80\n"
|
||||||
|
"}\n\n"
|
||||||
|
"virtual_server group ipv6-group {\n"
|
||||||
|
" lb_algo wrr\n"
|
||||||
|
" lb_kind NAT\n"
|
||||||
|
" protocol UDP\n"
|
||||||
|
" persistence_timeout 360\n"
|
||||||
|
" persistence_granularity 128\n"
|
||||||
|
" delay_loop 30\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"
|
||||||
|
"}\n\n")
|
||||||
|
udp_sample = sample_configs_combined.sample_lb_with_udp_listener_tuple(
|
||||||
|
listeners=[sample_configs_combined.sample_listener_tuple(
|
||||||
|
proto=constants.PROTOCOL_UDP,
|
||||||
|
persistence_type=constants.SESSION_PERSISTENCE_SOURCE_IP,
|
||||||
|
monitor_proto=constants.HEALTH_MONITOR_UDP_CONNECT)]
|
||||||
|
)
|
||||||
|
udp_listener = udp_sample.listeners[0]
|
||||||
|
ipv6_lb = sample_configs_combined.sample_listener_loadbalancer_tuple(
|
||||||
|
vip=sample_configs_combined.sample_vip_tuple('2001:db8::2'))
|
||||||
|
udp_listener = udp_listener._replace(load_balancer=ipv6_lb)
|
||||||
|
rendered_obj = self.lvs_jinja_cfg.render_loadbalancer_obj(udp_listener)
|
||||||
|
self.assertEqual(exp, rendered_obj)
|
||||||
|
|
||||||
def test_render_template_udp_one_packet(self):
|
def test_render_template_udp_one_packet(self):
|
||||||
exp = ("# Configuration for Loadbalancer sample_loadbalancer_id_1\n"
|
exp = ("# Configuration for Loadbalancer sample_loadbalancer_id_1\n"
|
||||||
"# Configuration for Listener sample_listener_id_1\n\n"
|
"# Configuration for Listener sample_listener_id_1\n\n"
|
||||||
|
@ -586,7 +586,8 @@ RET_SCTP_LISTENER = {
|
|||||||
|
|
||||||
|
|
||||||
def sample_listener_loadbalancer_tuple(
|
def sample_listener_loadbalancer_tuple(
|
||||||
topology=None, enabled=True, pools=None, additional_vips=False):
|
topology=None, enabled=True, vip=None, pools=None,
|
||||||
|
additional_vips=False):
|
||||||
if topology and topology in ['ACTIVE_STANDBY', 'ACTIVE_ACTIVE']:
|
if topology and topology in ['ACTIVE_STANDBY', 'ACTIVE_ACTIVE']:
|
||||||
more_amp = True
|
more_amp = True
|
||||||
else:
|
else:
|
||||||
@ -598,7 +599,7 @@ def sample_listener_loadbalancer_tuple(
|
|||||||
return in_lb(
|
return in_lb(
|
||||||
id='sample_loadbalancer_id_1',
|
id='sample_loadbalancer_id_1',
|
||||||
name='test-lb',
|
name='test-lb',
|
||||||
vip=sample_vip_tuple(),
|
vip=vip or sample_vip_tuple(),
|
||||||
amphorae=[sample_amphora_tuple(role=constants.ROLE_MASTER),
|
amphorae=[sample_amphora_tuple(role=constants.ROLE_MASTER),
|
||||||
sample_amphora_tuple(
|
sample_amphora_tuple(
|
||||||
id='sample_amphora_id_2',
|
id='sample_amphora_id_2',
|
||||||
@ -618,13 +619,13 @@ def sample_listener_loadbalancer_tuple(
|
|||||||
|
|
||||||
|
|
||||||
def sample_lb_with_udp_listener_tuple(
|
def sample_lb_with_udp_listener_tuple(
|
||||||
topology=None, enabled=True, pools=None):
|
topology=None, enabled=True, listeners=None, pools=None):
|
||||||
if topology and topology in ['ACTIVE_STANDBY', 'ACTIVE_ACTIVE']:
|
if topology and topology in ['ACTIVE_STANDBY', 'ACTIVE_ACTIVE']:
|
||||||
more_amp = True
|
more_amp = True
|
||||||
else:
|
else:
|
||||||
more_amp = False
|
more_amp = False
|
||||||
topology = constants.TOPOLOGY_SINGLE
|
topology = constants.TOPOLOGY_SINGLE
|
||||||
listeners = [sample_listener_tuple(
|
listeners = listeners or [sample_listener_tuple(
|
||||||
proto=constants.PROTOCOL_UDP,
|
proto=constants.PROTOCOL_UDP,
|
||||||
persistence_type=constants.SESSION_PERSISTENCE_SOURCE_IP,
|
persistence_type=constants.SESSION_PERSISTENCE_SOURCE_IP,
|
||||||
persistence_timeout=33,
|
persistence_timeout=33,
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Modified default Keepalived LVS persistence granularity
|
||||||
|
configuration value so it would be ipv6 compatible.
|
Loading…
Reference in New Issue
Block a user