BSN: Remove db lock and add missing contexts
Adds context tracking decorators that were missing from router interface methods. Without them, new sessions were being created instead of using the existing context which was causing transaction issues. Modifies the servermanager to store context references as weakrefs so if multiple functions are called before the rest functions are called, the first one doesn't steal the only context reference with a pop() call. Removes a DB lock for update in the server manager that occured during rest calls that was triggering deadlocks due to the file lock synchronization for the rest calls. Closes-Bug: #1336251 Change-Id: Iad3d61e2c23832b3ad760a999fbab7feaa13f805
This commit is contained in:
@@ -968,6 +968,7 @@ class NeutronRestProxyV2(NeutronRestProxyV2Base,
|
||||
self.servers.rest_delete_router(tenant_id, router_id)
|
||||
return ret_val
|
||||
|
||||
@put_context_in_serverpool
|
||||
def add_router_interface(self, context, router_id, interface_info):
|
||||
|
||||
LOG.debug(_("NeutronRestProxyV2: add_router_interface() called"))
|
||||
@@ -996,6 +997,7 @@ class NeutronRestProxyV2(NeutronRestProxyV2Base,
|
||||
intf_details)
|
||||
return new_intf_info
|
||||
|
||||
@put_context_in_serverpool
|
||||
def remove_router_interface(self, context, router_id, interface_info):
|
||||
|
||||
LOG.debug(_("NeutronRestProxyV2: remove_router_interface() called"))
|
||||
@@ -1087,6 +1089,7 @@ class NeutronRestProxyV2(NeutronRestProxyV2Base,
|
||||
else:
|
||||
self._send_floatingip_update(context)
|
||||
|
||||
@put_context_in_serverpool
|
||||
def disassociate_floatingips(self, context, port_id):
|
||||
LOG.debug(_("NeutronRestProxyV2: diassociate_floatingips() called"))
|
||||
super(NeutronRestProxyV2, self).disassociate_floatingips(context,
|
||||
|
||||
Reference in New Issue
Block a user