From 39c48c2d41bbb60a1572014a5078acb6b5b695d3 Mon Sep 17 00:00:00 2001 From: Adit Sarfaty Date: Tue, 4 Dec 2018 14:16:16 +0200 Subject: [PATCH] NSX|V use context reader for router driver When adding a router GW during hte router creation, in some cases the wrong router driver is retrived, causing errors. Using the context reader solves this problem. Change-Id: I109e2dfd09be3b1ecd8edc237d74c8747f28e7e8 --- vmware_nsx/plugins/nsx_v/plugin.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vmware_nsx/plugins/nsx_v/plugin.py b/vmware_nsx/plugins/nsx_v/plugin.py index 894941c990..060c96122d 100644 --- a/vmware_nsx/plugins/nsx_v/plugin.py +++ b/vmware_nsx/plugins/nsx_v/plugin.py @@ -3599,12 +3599,15 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin, def _update_router_gw_info(self, context, router_id, info, is_routes_update=False, force_update=False): - router_driver = self._find_router_driver(context, router_id) + with db_api.CONTEXT_WRITER.using(context): + # use the reader context a this might be called from create_router + router_db = self._get_router(context, router_id) + router_driver = self._get_router_driver(context, router_db) + if info: try: ext_ips = info.get('external_fixed_ips') network_id = info.get('network_id') - router_db = self._get_router(context, router_id) org_enable_snat = router_db.enable_snat # Ensure that a router cannot have SNAT disabled if there are