From e7c08ec70dbba726ddfc1c6d29d4898e81a6a2f4 Mon Sep 17 00:00:00 2001 From: Senthilnathan Murugappan Date: Fri, 1 Apr 2016 15:46:27 -0700 Subject: [PATCH] Parse and send session persistence info to lbaas driver in case of lbaasv2 Change-Id: Ie089f8481dc076aef78c87b7d5bfeb2fc3b6e116 Partial-Bug:#1565135 --- src/config/svc-monitor/svc_monitor/loadbalancer_agent.py | 8 +++++++- src/config/svc-monitor/svc_monitor/tests/test_f5_lb.py | 3 ++- src/config/svc-monitor/svc_monitor/tests/test_ha_proxy.py | 3 ++- .../svc_monitor/tests/test_loadbalancer_agent.py | 2 ++ .../svc-monitor/svc_monitor/tests/test_svc_monitor.py | 3 ++- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/config/svc-monitor/svc_monitor/loadbalancer_agent.py b/src/config/svc-monitor/svc_monitor/loadbalancer_agent.py index 46fda9f768e..54d8e87a8f3 100644 --- a/src/config/svc-monitor/svc_monitor/loadbalancer_agent.py +++ b/src/config/svc-monitor/svc_monitor/loadbalancer_agent.py @@ -390,7 +390,6 @@ def listener_get_reqdict(self, listener): 'protocol_port': props['protocol_port'], 'protocol': props['protocol'], 'loadbalancer_id': listener.loadbalancer, - 'session_persistence': None, 'admin_state_up': props['admin_state'], 'status': self._get_object_status(listener)} @@ -482,6 +481,7 @@ def loadbalancer_pool_get_reqdict(self, pool): 'name': pool.display_name, 'description': self._get_object_description(pool), 'status': self._get_object_status(pool), + 'session_persistence': None, } props = pool.params @@ -490,6 +490,12 @@ def loadbalancer_pool_get_reqdict(self, pool): if value is not None: res[mapping] = value + if props['session_persistence']: + sp = {'type': props['session_persistence']} + if props['session_persistence'] == 'APP_COOKIE': + sp['cookie_name'] = props['persistence_cookie_name'] + res['session_persistence'] = sp + # provider res['provider'] = pool.provider diff --git a/src/config/svc-monitor/svc_monitor/tests/test_f5_lb.py b/src/config/svc-monitor/svc_monitor/tests/test_f5_lb.py index 3055b75b134..c1f7fd04c10 100644 --- a/src/config/svc-monitor/svc_monitor/tests/test_f5_lb.py +++ b/src/config/svc-monitor/svc_monitor/tests/test_f5_lb.py @@ -157,7 +157,8 @@ def create_pool(self, uuid, fq_name_str, project=None, vip=None, hm=None): pool_obj['loadbalancer_pool_provider'] = 'f5' pool_obj['loadbalancer_pool_properties'] = \ {'protocol': 'HTTP', 'subnet_id': 'pool_subnet_id', - 'loadbalancer_method': 'ROUND_ROBIN', 'admin_state': 'true'} + 'loadbalancer_method': 'ROUND_ROBIN', 'admin_state': 'true', + 'session_persistence': None, 'persistence_cookie_name': None} if vip: pool_obj['virtual_ip_back_refs']=[{'uuid': vip.uuid}] if hm: diff --git a/src/config/svc-monitor/svc_monitor/tests/test_ha_proxy.py b/src/config/svc-monitor/svc_monitor/tests/test_ha_proxy.py index c4b17977185..714d2b1a6d3 100644 --- a/src/config/svc-monitor/svc_monitor/tests/test_ha_proxy.py +++ b/src/config/svc-monitor/svc_monitor/tests/test_ha_proxy.py @@ -171,7 +171,8 @@ def create_pool(self, uuid, fq_name_str, project=None, vip=None, hm=None): pool_obj['loadbalancer_pool_provider'] = 'opencontrail' pool_obj['loadbalancer_pool_properties'] = \ {'protocol': 'HTTP', 'subnet_id': 'subnet-id', - 'loadbalancer_method': 'ROUND_ROBIN', 'admin_state': 'true'} + 'loadbalancer_method': 'ROUND_ROBIN', 'admin_state': 'true', + 'session_persistence': None, 'persistence_cookie_name': None} if vip: pool_obj['virtual_ip_back_refs']=[{'uuid': vip.uuid}] if hm: diff --git a/src/config/svc-monitor/svc_monitor/tests/test_loadbalancer_agent.py b/src/config/svc-monitor/svc_monitor/tests/test_loadbalancer_agent.py index 1fc1602c167..e40736a70b4 100644 --- a/src/config/svc-monitor/svc_monitor/tests/test_loadbalancer_agent.py +++ b/src/config/svc-monitor/svc_monitor/tests/test_loadbalancer_agent.py @@ -132,6 +132,8 @@ def create_pool(self, fq_name_str, vip=None, hm=None): pool_obj['loadbalancer_pool_properties'] = {'protocol': 'HTTP', 'subnet_id': 'subnet-id', 'loadbalancer_method': 'ROUND_ROBIN', + 'session_persistence': None, + 'persistence_cookie_name': None, 'admin_state': 'true'} if vip: pool_obj['virtual_ip_back_refs']=[{'uuid': vip.uuid}] diff --git a/src/config/svc-monitor/svc_monitor/tests/test_svc_monitor.py b/src/config/svc-monitor/svc_monitor/tests/test_svc_monitor.py index b37d4110d07..9df39e39780 100644 --- a/src/config/svc-monitor/svc_monitor/tests/test_svc_monitor.py +++ b/src/config/svc-monitor/svc_monitor/tests/test_svc_monitor.py @@ -674,7 +674,8 @@ def add_pool(self, name, uuid, proj_obj, sas_obj): pool_dict['loadbalancer_pool_provider'] = 'Test-SAS' pool_dict['loadbalancer_pool_properties'] = \ {'protocol': 'TCP', 'subnet_id': 'subnet-id', - 'loadbalancer_method': 'ROUND_ROBIN', 'admin_state': 'true'} + 'loadbalancer_method': 'ROUND_ROBIN', 'admin_state': 'true', + 'session_persistence': None, 'persistence_cookie_name': None} pool_obj = LoadbalancerPool.from_dict(**pool_dict) self._return_obj['loadbalancer_pool'] = pool_dict config_db.LoadbalancerPoolSM.locate(uuid)