summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-08-28 21:56:46 +0000
committerGerrit Code Review <review@openstack.org>2015-08-28 21:56:46 +0000
commit8819c6983b52b7a51d179a4e234e27ec81e03aea (patch)
treee116b593a92733a971898e3fb3b159e97daf9019
parent61ab7a60e23d2393f5c9cec65c610727fb342728 (diff)
parent1baa2d7249dcb5ab765cbcf66b53344fd2dac19c (diff)
downloadneutron-8819c6983b52b7a51d179a4e234e27ec81e03aea.tar.gz
Merge "NSX-mh: Failover controller connections on socket failures" into stable/juno
-rw-r--r--neutron/plugins/vmware/api_client/eventlet_client.py4
-rw-r--r--neutron/plugins/vmware/api_client/request.py4
2 files changed, 6 insertions, 2 deletions
diff --git a/neutron/plugins/vmware/api_client/eventlet_client.py b/neutron/plugins/vmware/api_client/eventlet_client.py
index fa0cd1f3eb..dfbc30836c 100644
--- a/neutron/plugins/vmware/api_client/eventlet_client.py
+++ b/neutron/plugins/vmware/api_client/eventlet_client.py
@@ -65,8 +65,8 @@ class EventletApiClient(base.ApiClientBase):
# Connection pool is a list of queues.
self._conn_pool = eventlet.queue.PriorityQueue()
self._next_conn_priority = 1
- for host, port, is_ssl in api_providers:
- for _ in range(concurrent_connections):
+ for _ in range(concurrent_connections):
+ for host, port, is_ssl in api_providers:
conn = self._create_connection(host, port, is_ssl)
self._conn_pool.put((self._next_conn_priority, conn))
self._next_conn_priority += 1
diff --git a/neutron/plugins/vmware/api_client/request.py b/neutron/plugins/vmware/api_client/request.py
index bfc80fcbca..62fcecf402 100644
--- a/neutron/plugins/vmware/api_client/request.py
+++ b/neutron/plugins/vmware/api_client/request.py
@@ -19,6 +19,7 @@ import abc
import copy
import eventlet
import httplib
+import socket
import time
import six
@@ -193,9 +194,12 @@ class ApiRequest(object):
'url': self._url, 'status': response.status})
raise Exception(_('Server error return: %s'), response.status)
return response
+ except socket.error:
+ is_conn_service_unavail = True
except Exception as e:
if isinstance(e, httplib.BadStatusLine):
msg = (_("Invalid server response"))
+
else:
msg = unicode(e)
if response is None: