NSX|V: ensure that FW rule updates on edge are locked
If this opertaion happens concurrently then therecould be a exception on the edge. Change-Id: I33542ee956b35b3616748b8d44017eb74d439bfa
This commit is contained in:
parent
ca33b1bfcf
commit
03d62f94e3
@ -104,7 +104,10 @@ class RouterDistributedDriver(router_driver.RouterBaseDriver):
|
|||||||
router_db = self.plugin._get_router(context, router_id)
|
router_db = self.plugin._get_router(context, router_id)
|
||||||
nexthop = self.plugin._get_external_attachment_info(
|
nexthop = self.plugin._get_external_attachment_info(
|
||||||
context, router_db)[2]
|
context, router_db)[2]
|
||||||
self.plugin._update_subnets_and_dnat_firewall(context, router_db)
|
with locking.LockManager.get_lock(self._get_edge_id(context,
|
||||||
|
router_id)):
|
||||||
|
self.plugin._update_subnets_and_dnat_firewall(context,
|
||||||
|
router_db)
|
||||||
md_gw_data = self._get_metadata_gw_data(context, router_id)
|
md_gw_data = self._get_metadata_gw_data(context, router_id)
|
||||||
self._update_routes(context, router_id, nexthop, md_gw_data)
|
self._update_routes(context, router_id, nexthop, md_gw_data)
|
||||||
if 'admin_state_up' in r:
|
if 'admin_state_up' in r:
|
||||||
|
@ -60,7 +60,10 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver):
|
|||||||
router_db = self.plugin._get_router(context, router_id)
|
router_db = self.plugin._get_router(context, router_id)
|
||||||
nexthop = self.plugin._get_external_attachment_info(
|
nexthop = self.plugin._get_external_attachment_info(
|
||||||
context, router_db)[2]
|
context, router_db)[2]
|
||||||
self.plugin._update_subnets_and_dnat_firewall(context, router_db)
|
with locking.LockManager.get_lock(
|
||||||
|
self._get_router_edge_id(context, router_id)):
|
||||||
|
self.plugin._update_subnets_and_dnat_firewall(context,
|
||||||
|
router_db)
|
||||||
self.update_routes(context, router_id, nexthop)
|
self.update_routes(context, router_id, nexthop)
|
||||||
if 'admin_state_up' in r:
|
if 'admin_state_up' in r:
|
||||||
self.plugin._update_router_admin_state(
|
self.plugin._update_router_admin_state(
|
||||||
|
@ -1385,8 +1385,9 @@ class EdgeManager(object):
|
|||||||
|
|
||||||
self.plugin.metadata_proxy_handler.configure_router_edge(
|
self.plugin.metadata_proxy_handler.configure_router_edge(
|
||||||
context, resource_id)
|
context, resource_id)
|
||||||
self.plugin.setup_dhcp_edge_fw_rules(
|
with locking.LockManager.get_lock(str(dhcp_edge_id)):
|
||||||
context, self.plugin, resource_id)
|
self.plugin.setup_dhcp_edge_fw_rules(
|
||||||
|
context, self.plugin, resource_id)
|
||||||
|
|
||||||
if not self.per_interface_rp_filter:
|
if not self.per_interface_rp_filter:
|
||||||
with locking.LockManager.get_lock(str(dhcp_edge_id)):
|
with locking.LockManager.get_lock(str(dhcp_edge_id)):
|
||||||
|
Loading…
Reference in New Issue
Block a user