Merge "BigSwitch plugin - add portbinding info in requests to controller"

This commit is contained in:
Jenkins 2013-08-28 06:34:21 +00:00 committed by Gerrit Code Review
commit c5e3a84d77
2 changed files with 26 additions and 5 deletions

View File

@ -295,10 +295,11 @@ class ServerPool(object):
return ret
else:
LOG.error(_('ServerProxy: %(action)s failure for servers: '
'%(server)r'),
'%(server)r Response: %(response)s'),
{'action': action,
'server': (active_server.server,
active_server.port)})
active_server.port),
'response': ret[3]})
active_server.failed = True
# All servers failed, reset server list and try again next time
@ -565,6 +566,7 @@ class NeutronRestProxyV2(db_base_plugin_v2.NeutronDbPluginV2,
and 'id' in new_port):
porttracker_db.put_port_hostid(context, new_port['id'],
port['port'][portbindings.HOST_ID])
new_port = self._extend_port_dict_binding(context, new_port)
net = super(NeutronRestProxyV2,
self).get_network(context, new_port["network_id"])
@ -660,6 +662,7 @@ class NeutronRestProxyV2(db_base_plugin_v2.NeutronDbPluginV2,
and 'id' in new_port):
porttracker_db.put_port_hostid(context, new_port['id'],
port['port'][portbindings.HOST_ID])
new_port = self._extend_port_dict_binding(context, new_port)
# update on networl ctrl
try:
resource = PORTS_PATH % (orig_port["tenant_id"],
@ -690,7 +693,7 @@ class NeutronRestProxyV2(db_base_plugin_v2.NeutronDbPluginV2,
raise
# return new_port
return self._extend_port_dict_binding(context, new_port)
return new_port
def delete_port(self, context, port_id, l3_port_check=True):
"""Delete a port.

View File

@ -65,16 +65,34 @@ class HTTPResponseMock():
return "{'status': '200 OK'}"
class HTTPResponseMock500():
status = 500
reason = 'Internal Server Error'
def __init__(self, sock, debuglevel=0, strict=0, method=None,
buffering=False, errmsg='500 Internal Server Error'):
self.errmsg = errmsg
def read(self):
return "{'status': '%s'}" % self.errmsg
class HTTPConnectionMock():
def __init__(self, server, port, timeout):
pass
self.response = None
def request(self, action, uri, body, headers):
self.response = HTTPResponseMock(None)
# Port creations/updates must contain binding information
if ('port' in uri and 'attachment' not in uri
and 'binding' not in body and action in ('POST', 'PUT')):
errmsg = "Port binding info missing in port request '%s'" % body
self.response = HTTPResponseMock500(None, errmsg=errmsg)
return
def getresponse(self):
return HTTPResponseMock(None)
return self.response
def close(self):
pass