]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fix LBaaS Haproxy occurs error if no member is added
authorberlin <linb@vmware.com>
Fri, 11 Apr 2014 00:04:47 +0000 (08:04 +0800)
committerberlin <linb@vmware.com>
Mon, 14 Apr 2014 08:01:04 +0000 (16:01 +0800)
If no member is added and session_persistence.type=HTTP_COOKIE,
haproxy agent would not add cookie persistence option to the backend.
Closes-Bug: #1302283

Change-Id: Ifa2564df924c2555225a749a99c705b3f1caab4a

neutron/services/loadbalancer/drivers/haproxy/cfg.py
neutron/tests/unit/services/loadbalancer/drivers/haproxy/test_cfg.py

index 94a214bc4a86ec476e9697655e6f82dbd4d602dd..2944e456a6dcc5984bd659f1fc398de6ed1f6d9e 100644 (file)
@@ -199,7 +199,8 @@ def _get_session_persistence(config):
     if persistence['type'] == constants.SESSION_PERSISTENCE_SOURCE_IP:
         opts.append('stick-table type ip size 10k')
         opts.append('stick on src')
-    elif persistence['type'] == constants.SESSION_PERSISTENCE_HTTP_COOKIE:
+    elif (persistence['type'] == constants.SESSION_PERSISTENCE_HTTP_COOKIE and
+          config.get('members')):
         opts.append('cookie SRV insert indirect nocache')
     elif (persistence['type'] == constants.SESSION_PERSISTENCE_APP_COOKIE and
           persistence.get('cookie_name')):
index 7c937c982e2565d8cf6798700a723ff4a6719a9d..a35e159360189a0c16f3442094fd41359a1aa246 100644 (file)
@@ -178,7 +178,15 @@ class TestHaproxyCfg(base.BaseTestCase):
         self.assertEqual(cfg._get_session_persistence(config),
                          ['stick-table type ip size 10k', 'stick on src'])
 
+        config = {'vip': {'session_persistence': {'type': 'HTTP_COOKIE'}},
+                  'members': []}
+        self.assertEqual([], cfg._get_session_persistence(config))
+
         config = {'vip': {'session_persistence': {'type': 'HTTP_COOKIE'}}}
+        self.assertEqual([], cfg._get_session_persistence(config))
+
+        config = {'vip': {'session_persistence': {'type': 'HTTP_COOKIE'}},
+                  'members': [{'id': 'member1_id'}]}
         self.assertEqual(cfg._get_session_persistence(config),
                          ['cookie SRV insert indirect nocache'])