From 9a7bf3543a247e0e75e7896fe56fcf57a529a117 Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Thu, 16 Nov 2017 01:53:09 -0800 Subject: [PATCH] Retry with stale DB values In the CI we were seeing failures with _update_router_gw_info due to stale DB resources. Posting this as a stopgap until the patch https://review.openstack.org/520324 lands Change-Id: I9c899a2edb59ead81d9a2bdf728ee7207d4da0b0 --- vmware_nsx/plugins/nsx_v/drivers/distributed_router_driver.py | 2 ++ vmware_nsx/plugins/nsx_v/drivers/exclusive_router_driver.py | 2 ++ vmware_nsx/plugins/nsx_v/drivers/shared_router_driver.py | 2 ++ 3 files changed, 6 insertions(+) diff --git a/vmware_nsx/plugins/nsx_v/drivers/distributed_router_driver.py b/vmware_nsx/plugins/nsx_v/drivers/distributed_router_driver.py index 3a9c2c92b5..e14165f6a4 100644 --- a/vmware_nsx/plugins/nsx_v/drivers/distributed_router_driver.py +++ b/vmware_nsx/plugins/nsx_v/drivers/distributed_router_driver.py @@ -16,6 +16,7 @@ import netaddr from oslo_log import log as logging from oslo_utils import excutils +from neutron.db import api as db_api from neutron.db import l3_db from neutron_lib import constants @@ -135,6 +136,7 @@ class RouterDistributedDriver(router_driver.RouterBaseDriver): self._update_routes_on_plr(context, router_id, plr_id, newnexthop) + @db_api.retry_db_errors def _update_router_gw_info(self, context, router_id, info, is_routes_update=False, force_update=False): diff --git a/vmware_nsx/plugins/nsx_v/drivers/exclusive_router_driver.py b/vmware_nsx/plugins/nsx_v/drivers/exclusive_router_driver.py index dd61a0d6e3..c645c78fbf 100644 --- a/vmware_nsx/plugins/nsx_v/drivers/exclusive_router_driver.py +++ b/vmware_nsx/plugins/nsx_v/drivers/exclusive_router_driver.py @@ -14,6 +14,7 @@ from oslo_log import log as logging +from neutron.db import api as db_api from neutron_lib import constants as n_consts from neutron_lib.plugins import constants as plugin_const @@ -152,6 +153,7 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver): self._get_router_edge_id(context, router_id)): self.plugin._update_routes(context, router_id, nexthop) + @db_api.retry_db_errors def _update_router_gw_info(self, context, router_id, info, is_routes_update=False, force_update=False): router = self.plugin._get_router(context, router_id) diff --git a/vmware_nsx/plugins/nsx_v/drivers/shared_router_driver.py b/vmware_nsx/plugins/nsx_v/drivers/shared_router_driver.py index 0f55bdfcfd..8d53eb33f6 100644 --- a/vmware_nsx/plugins/nsx_v/drivers/shared_router_driver.py +++ b/vmware_nsx/plugins/nsx_v/drivers/shared_router_driver.py @@ -15,6 +15,7 @@ import netaddr from oslo_config import cfg +from neutron.db import api as db_api from neutron.db import l3_db from neutron.db.models import l3 as l3_db_models from neutron.db import models_v2 @@ -679,6 +680,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver): for net_id in intf_net_ids: edge_utils.delete_interface(self.nsx_v, context, router_id, net_id) + @db_api.retry_db_errors def _update_router_gw_info(self, context, router_id, info, is_routes_update=False, force_update=False):