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:
parent
14b279bcdf
commit
3754bba806
@ -162,6 +162,13 @@ class DvrEdgeRouter(dvr_local_router.DvrLocalRouter):
|
|||||||
|
|
||||||
def _create_dvr_gateway(self, ex_gw_port, gw_interface_name):
|
def _create_dvr_gateway(self, ex_gw_port, gw_interface_name):
|
||||||
# connect snat_ports to br_int from SNAT namespace
|
# 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():
|
for port in self.get_snat_interfaces():
|
||||||
self._plug_snat_port(port)
|
self._plug_snat_port(port)
|
||||||
self._external_gateway_added(ex_gw_port, gw_interface_name,
|
self._external_gateway_added(ex_gw_port, gw_interface_name,
|
||||||
|
Loading…
Reference in New Issue
Block a user