From 755421a6529689249719ee60d3ae27678f9b12ff Mon Sep 17 00:00:00 2001 From: Satish Patel Date: Tue, 30 Mar 2021 15:31:48 +0000 Subject: [PATCH] When session_persistence type NONE set option None This patch is missing part of existing patch [1]. when type=NONE set session_persistence to None. [1] https://review.opendev.org/c/openstack/senlin/+/777855 Change-Id: I41fb34e3c0a72bda459517e656ddc4705f90d03b --- senlin/drivers/os/octavia_v2.py | 3 ++ senlin/tests/unit/drivers/test_octavia_v2.py | 34 ++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/senlin/drivers/os/octavia_v2.py b/senlin/drivers/os/octavia_v2.py index 20297e6e3..32bcda060 100644 --- a/senlin/drivers/os/octavia_v2.py +++ b/senlin/drivers/os/octavia_v2.py @@ -104,6 +104,9 @@ class OctaviaClient(base.DriverBase): # Remove cookie_name when type not equal to APP_COOKIE if session_persistence['type'] != 'APP_COOKIE': session_persistence.pop('cookie_name', None) + # When type=NONE set session_persistence to None + if session_persistence['type'] == 'NONE': + session_persistence = None kwargs = { 'lb_algorithm': lb_algorithm, diff --git a/senlin/tests/unit/drivers/test_octavia_v2.py b/senlin/tests/unit/drivers/test_octavia_v2.py index 17860a1e0..f0d1393ad 100644 --- a/senlin/tests/unit/drivers/test_octavia_v2.py +++ b/senlin/tests/unit/drivers/test_octavia_v2.py @@ -196,6 +196,40 @@ class TestOctaviaV2Driver(base.SenlinTestCase): session_persistence=session_persistence_app_cookie, **kwargs) + def test_pool_create_type_none(self): + lb_algorithm = 'ROUND_ROBIN' + listener_id = 'ID1' + protocol = 'HTTP' + session_persistence = { + 'type': 'NONE', + 'cookie_name': 'whatever', + } + session_persistence_expected = session_persistence.copy() + session_persistence_expected.pop('cookie_name', None) + pool_obj = mock.Mock() + + # All input parameters are provided + kwargs = { + 'admin_state_up': True, + 'name': 'test-pool', + 'description': 'This is a pool', + } + + self.conn.load_balancer.create_pool.return_value = pool_obj + + # when type=NONE set session_persistence_type_none to None + session_persistence_expected = None + + self.assertEqual(pool_obj, self.oc.pool_create( + lb_algorithm, listener_id, protocol, + session_persistence, **kwargs)) + # cookie_name is not removed + self.conn.load_balancer.create_pool.assert_called_once_with( + lb_algorithm=lb_algorithm, listener_id=listener_id, + protocol=protocol, + session_persistence=session_persistence_expected, + **kwargs) + def test_pool_delete(self): pool_id = 'ID1'