Validate that snat namespace exits in _create_dvr_gateway

During rescheduling dvr router snat namespace may not be
created due to race between router added and router
updated updated notifications.

Verify that snat namespace exits or create one.

Partial-bug: 1881995

Change-Id: Ic28ce249d59264b0b882bd1cc3c9fb55854a6a47
This commit is contained in:
Ann Taraday 2020-06-08 16:45:05 +04:00
parent 14b279bcdf
commit 3754bba806
1 changed files with 7 additions and 0 deletions

View File

@ -162,6 +162,13 @@ class DvrEdgeRouter(dvr_local_router.DvrLocalRouter):
def _create_dvr_gateway(self, ex_gw_port, gw_interface_name):
# connect snat_ports to br_int from SNAT namespace
# NOTE(ataraday): Check if snat namespace exists, create if not -
# workaround for race between router_added and router_updated
# notifications https://launchpad.net/bugs/1881995
if not self.snat_namespace.exists():
self._create_snat_namespace()
for port in self.get_snat_interfaces():
self._plug_snat_port(port)
self._external_gateway_added(ex_gw_port, gw_interface_name,