[sqlalchemy-20] Remove retry decorator from update_floatingip_status
L3_NAT_dbonly_mixin.update_floatingip_status is called from methods which are decoarted with retry decorator or from within a db context. As update_floatingip_status also called from OVNL3RouterPlugin added a utility method, update_floatingip_status_retry with decorator to avoid retrying OVN methods, and added CONTEXT_WRITER here also as other calls of update_floatingip_status from l3_rpc for example uses CONTEXT_WRITER. Change-Id: Ifdb008c2402aa24766cbd30dd53458599076c955 Closes-Bug: #1980721
This commit is contained in:
@@ -1551,7 +1551,6 @@ class L3_NAT_dbonly_mixin(l3.RouterPluginBase,
|
|||||||
context, id, floatingip)
|
context, id, floatingip)
|
||||||
return floatingip
|
return floatingip
|
||||||
|
|
||||||
@db_api.retry_if_session_inactive()
|
|
||||||
def update_floatingip_status(self, context, floatingip_id, status):
|
def update_floatingip_status(self, context, floatingip_id, status):
|
||||||
"""Update operational status for floating IP in neutron DB."""
|
"""Update operational status for floating IP in neutron DB."""
|
||||||
return l3_obj.FloatingIP.update_object(
|
return l3_obj.FloatingIP.update_object(
|
||||||
|
@@ -22,6 +22,7 @@ from neutron_lib.callbacks import registry
|
|||||||
from neutron_lib.callbacks import resources
|
from neutron_lib.callbacks import resources
|
||||||
from neutron_lib import constants as n_const
|
from neutron_lib import constants as n_const
|
||||||
from neutron_lib import context as n_context
|
from neutron_lib import context as n_context
|
||||||
|
from neutron_lib.db import api as db_api
|
||||||
from neutron_lib import exceptions as n_exc
|
from neutron_lib import exceptions as n_exc
|
||||||
from neutron_lib.exceptions import availability_zone as az_exc
|
from neutron_lib.exceptions import availability_zone as az_exc
|
||||||
from neutron_lib.plugins import constants as plugin_constants
|
from neutron_lib.plugins import constants as plugin_constants
|
||||||
@@ -288,11 +289,17 @@ class OVNL3RouterPlugin(service_base.ServicePluginBase,
|
|||||||
return fip
|
return fip
|
||||||
|
|
||||||
def update_floatingip_status(self, context, floatingip_id, status):
|
def update_floatingip_status(self, context, floatingip_id, status):
|
||||||
fip = super(OVNL3RouterPlugin, self).update_floatingip_status(
|
fip = self.update_floatingip_status_retry(
|
||||||
context, floatingip_id, status)
|
context, floatingip_id, status)
|
||||||
self._ovn_client.update_floatingip_status(context, fip)
|
self._ovn_client.update_floatingip_status(context, fip)
|
||||||
return fip
|
return fip
|
||||||
|
|
||||||
|
@db_api.retry_if_session_inactive()
|
||||||
|
def update_floatingip_status_retry(self, context, floatingip_id, status):
|
||||||
|
with db_api.CONTEXT_WRITER.using(context):
|
||||||
|
return super(OVNL3RouterPlugin, self).update_floatingip_status(
|
||||||
|
context, floatingip_id, status)
|
||||||
|
|
||||||
def disassociate_floatingips(self, context, port_id, do_notify=True):
|
def disassociate_floatingips(self, context, port_id, do_notify=True):
|
||||||
fips = self.get_floatingips(context.elevated(),
|
fips = self.get_floatingips(context.elevated(),
|
||||||
filters={'port_id': [port_id]})
|
filters={'port_id': [port_id]})
|
||||||
|
Reference in New Issue
Block a user