Merge "NSXv: ensure that locking is done with flag 'external=True'"

This commit is contained in:
Jenkins 2015-09-16 09:41:59 +00:00 committed by Gerrit Code Review
commit 45442211fc
6 changed files with 65 additions and 97 deletions

View File

@ -36,6 +36,8 @@ class LockManager:
if cfg.CONF.nsxv.locking_coordinator_url:
return LockManager._get_lock_distributed(name)
else:
# Ensure that external=True
kwargs['external'] = True
return LockManager._get_lock_local(name, **kwargs)
@staticmethod

View File

@ -470,8 +470,7 @@ class NsxVPluginV2(agents_db.AgentDbMixin,
def _add_member_to_security_group(self, sg_id, vnic_id):
with locking.LockManager.get_lock(
str(sg_id), lock_file_prefix='neutron-security-ops',
external=True):
str(sg_id), lock_file_prefix='neutron-security-ops'):
try:
self.nsx_v.vcns.add_member_to_security_group(
sg_id, vnic_id)
@ -497,8 +496,7 @@ class NsxVPluginV2(agents_db.AgentDbMixin,
def _remove_member_from_security_group(self, sg_id, vnic_id):
with locking.LockManager.get_lock(
str(sg_id), lock_file_prefix='neutron-security-ops',
external=True):
str(sg_id), lock_file_prefix='neutron-security-ops'):
try:
h, c = self.nsx_v.vcns.remove_member_from_security_group(
sg_id, vnic_id)
@ -1078,7 +1076,7 @@ class NsxVPluginV2(agents_db.AgentDbMixin,
raise n_exc.InvalidInput(error_message=err_msg)
with locking.LockManager.get_lock(
'nsx-edge-pool', lock_file_prefix='edge-bind-', external=True):
'nsx-edge-pool', lock_file_prefix='edge-bind-'):
s = super(NsxVPluginV2, self).create_subnet(context, subnet)
if s['enable_dhcp']:
try:
@ -1223,8 +1221,8 @@ class NsxVPluginV2(agents_db.AgentDbMixin,
edge_id = self._get_edge_id_by_rtr_id(context, resource_id)
if edge_id:
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix='nsxv-dhcp-config-',
external=True):
str(edge_id),
lock_file_prefix='nsxv-dhcp-config-'):
if self.metadata_proxy_handler:
LOG.debug('Update metadata for resource %s',
resource_id)

View File

@ -69,7 +69,7 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver):
def update_routes(self, context, router_id, nexthop):
with locking.LockManager.get_lock(
self._get_router_edge_id(context, router_id), external=True):
self._get_router_edge_id(context, router_id)):
self.plugin._update_routes(context, router_id, nexthop)
def _update_router_gw_info(self, context, router_id, info,
@ -91,7 +91,7 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver):
context, router))
edge_id = self._get_router_edge_id(context, router_id)
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
if new_ext_net_id != org_ext_net_id and orgnexthop:
# network changed, so need to remove default gateway before
# vnic can be configured
@ -130,7 +130,7 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver):
address_groups = self.plugin._get_address_groups(
context, router_id, network_id)
with locking.LockManager.get_lock(
self._get_router_edge_id(context, router_id), external=True):
self._get_router_edge_id(context, router_id)):
edge_utils.update_internal_interface(
self.nsx_v, context, router_id, network_id, address_groups,
router_db['admin_state_up'])
@ -166,7 +166,7 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver):
network_id = subnet['network_id']
with locking.LockManager.get_lock(
self._get_router_edge_id(context, router_id), external=True):
self._get_router_edge_id(context, router_id)):
if router_db.gw_port and router_db.enable_snat:
# First update nat rules
self.plugin._update_nat_rules(context, router_db)
@ -189,7 +189,7 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver):
def _update_edge_router(self, context, router_id):
router = self.plugin._get_router(context.elevated(), router_id)
with locking.LockManager.get_lock(
self._get_router_edge_id(context, router_id), external=True):
self._get_router_edge_id(context, router_id)):
self.plugin._update_external_interface(context, router)
self.plugin._update_nat_rules(context, router)
self.plugin._update_subnets_and_dnat_firewall(context, router)

View File

@ -53,8 +53,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
context, router_id, router)
else:
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
str(edge_id), lock_file_prefix=NSXV_ROUTER_RECONFIG):
gw_info = self.plugin._extract_external_gw(
context, router, is_extract=True)
super(nsx_v.NsxVPluginV2, self.plugin).update_router(
@ -214,7 +213,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
router_id)
with locking.LockManager.get_lock(
str(new_edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG, external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
self._add_router_services_on_available_edge(context,
router_id)
else:
@ -455,8 +454,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
return optional_router_ids, conflict_router_ids
def _bind_router_on_available_edge(self, context, router_id, admin_state):
with locking.LockManager.get_lock("router", lock_file_prefix="bind-",
external=True):
with locking.LockManager.get_lock("router", lock_file_prefix="bind-"):
conflict_network_ids, conflict_router_ids, intf_num = (
self._get_conflict_network_and_router_ids_by_intf(context,
router_id))
@ -478,8 +476,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
edge_id = edge_utils.get_router_edge_id(context, router_id)
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
# add all internal interfaces of the router on edge
intf_net_ids = (
self.plugin._get_internal_network_ids_by_router(context,
@ -540,8 +537,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
is_migrated = False
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
router_ids = self.edge_manager.get_routers_on_same_edge(
context, router_id)
org_ext_net_id = (router.gw_port_id and
@ -620,8 +616,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
edge_id = edge_utils.get_router_edge_id(context, router_id)
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
self._add_router_services_on_available_edge(context,
router_id)
@ -633,8 +628,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
is_migrated = False
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
router_ids = self.edge_manager.get_routers_on_same_edge(
context, router_id)
info = super(nsx_v.NsxVPluginV2,
@ -694,8 +688,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
edge_id = edge_utils.get_router_edge_id(context, router_id)
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
self._add_router_services_on_available_edge(context,
router_id)
else:
@ -707,8 +700,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
edge_id = edge_utils.get_router_edge_id(context, router_id)
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
self._add_router_services_on_available_edge(context,
router_id)
return info
@ -717,8 +709,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
edge_id = edge_utils.get_router_edge_id(context, router_id)
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
info = super(
nsx_v.NsxVPluginV2, self.plugin).remove_router_interface(
context, router_id, interface_info)
@ -750,8 +741,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
edge_id = edge_utils.get_router_edge_id(context, router_id)
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix=NSXV_ROUTER_RECONFIG,
external=True):
lock_file_prefix=NSXV_ROUTER_RECONFIG):
router_ids = self.edge_manager.get_routers_on_same_edge(
context, router_id)
if router_ids:

View File

@ -277,8 +277,7 @@ class EdgeLbDriver(object):
if not self._fw_section_id:
# Avoid concurrent creation of section by multiple neutron
# instances
with locking.LockManager.get_lock('lbaas-section-creation',
external=True):
with locking.LockManager.get_lock('lbaas-section-creation'):
fw_section_id = self.vcns.get_section_id(LBAAS_FW_SECTION_NAME)
if not fw_section_id:
section = et.Element('section')
@ -310,7 +309,7 @@ class EdgeLbDriver(object):
return rtr_bindings['edge_id']
def _vip_as_secondary_ip(self, edge_id, vip, handler):
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
r = self.vcns.get_interfaces(edge_id)[1]
vnics = r.get('vnics', [])
for vnic in vnics:
@ -377,7 +376,7 @@ class EdgeLbDriver(object):
edge_ips = self._get_edge_ips(edge_id)
plugin = self._get_lb_plugin()
with locking.LockManager.get_lock('lbaas-fw-section', external=True):
with locking.LockManager.get_lock('lbaas-fw-section'):
members = plugin.get_members(
context,
filters={'pool_id': [pool_id]},
@ -435,14 +434,14 @@ class EdgeLbDriver(object):
'enabled': True,
'name': vip_id}]}
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
h = self.vcns.add_firewall_rule(edge_id, fw_rule)[0]
fw_rule_id = extract_resource_id(h['location'])
return fw_rule_id
def _del_vip_fw_rule(self, edge_id, vip_fw_rule_id):
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
self.vcns.delete_firewall_rule(edge_id, vip_fw_rule_id)
def create_pool(self, context, pool):
@ -457,7 +456,7 @@ class EdgeLbDriver(object):
edge_pool = convert_lbaas_pool(pool)
try:
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
h = self.vcns.create_pool(edge_id, edge_pool)[0]
edge_pool_id = extract_resource_id(h['location'])
self._lb_driver.create_pool_successful(
@ -472,8 +471,7 @@ class EdgeLbDriver(object):
LOG.debug('Updating pool %s to %s', old_pool, pool)
edge_pool = convert_lbaas_pool(pool)
try:
with locking.LockManager.get_lock(pool_mapping['edge_id'],
external=True):
with locking.LockManager.get_lock(pool_mapping['edge_id']):
self.vcns.update_pool(pool_mapping['edge_id'],
pool_mapping['edge_pool_id'],
edge_pool)
@ -489,8 +487,7 @@ class EdgeLbDriver(object):
if pool_mapping:
try:
with locking.LockManager.get_lock(pool_mapping['edge_id'],
external=True):
with locking.LockManager.get_lock(pool_mapping['edge_id']):
self.vcns.delete_pool(pool_mapping['edge_id'],
pool_mapping['edge_pool_id'])
except nsxv_exc.VcnsApiException:
@ -517,7 +514,7 @@ class EdgeLbDriver(object):
app_profile_id = None
try:
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
h = (self.vcns.create_app_profile(edge_id, app_profile))[0]
app_profile_id = extract_resource_id(h['location'])
except nsxv_exc.VcnsApiException:
@ -529,7 +526,7 @@ class EdgeLbDriver(object):
edge_vip = convert_lbaas_vip(vip, app_profile_id, pool_mapping)
try:
self._add_vip_as_secondary_ip(edge_id, vip['address'])
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
h = self.vcns.create_vip(edge_id, edge_vip)[0]
edge_vip_id = extract_resource_id(h['location'])
edge_fw_rule_id = self._add_vip_fw_rule(edge_id, vip['id'],
@ -542,7 +539,7 @@ class EdgeLbDriver(object):
with excutils.save_and_reraise_exception():
self._lb_driver.vip_failed(context, vip)
LOG.error(_LE('Failed to create vip on Edge: %s'), edge_id)
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
self.vcns.delete_app_profile(edge_id, app_profile_id)
def update_vip(self, context, old_vip, vip, pool_mapping, vip_mapping):
@ -555,7 +552,7 @@ class EdgeLbDriver(object):
vip['name'], vip.get('session_persistence') or {},
vip.get('protocol'))
try:
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
self.vcns.update_app_profile(edge_id, app_profile_id,
app_profile)
except nsxv_exc.VcnsApiException:
@ -566,7 +563,7 @@ class EdgeLbDriver(object):
edge_vip = convert_lbaas_vip(vip, app_profile_id, pool_mapping)
try:
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
self.vcns.update_vip(edge_id, edge_vip_id, edge_vip)
self._lb_driver.vip_successful(context, vip)
except nsxv_exc.VcnsApiException:
@ -585,7 +582,7 @@ class EdgeLbDriver(object):
app_profile_id = vip_mapping['edge_app_profile_id']
try:
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
self.vcns.delete_vip(edge_id, edge_vse_id)
self._del_vip_as_secondary_ip(edge_id, vip['address'])
self._del_vip_fw_rule(edge_id, vip_mapping['edge_fw_rule_id'])
@ -598,7 +595,7 @@ class EdgeLbDriver(object):
_LE('Failed to delete vip on edge: %s'), edge_id)
try:
with locking.LockManager.get_lock(edge_id, external=True):
with locking.LockManager.get_lock(edge_id):
self.vcns.delete_app_profile(edge_id, app_profile_id)
except nsxv_exc.ResourceNotFound:
LOG.error(_LE('app profile not found on edge: %s'), edge_id)
@ -614,8 +611,7 @@ class EdgeLbDriver(object):
def create_member(self, context, member, pool_mapping):
LOG.debug('Creating member %s', member)
with locking.LockManager.get_lock(pool_mapping['edge_id'],
external=True):
with locking.LockManager.get_lock(pool_mapping['edge_id']):
edge_pool = self.vcns.get_pool(pool_mapping['edge_id'],
pool_mapping['edge_pool_id'])[1]
edge_member = convert_lbaas_member(member)
@ -646,8 +642,7 @@ class EdgeLbDriver(object):
def update_member(self, context, old_member, member, pool_mapping):
LOG.debug('Updating member %s to %s', old_member, member)
with locking.LockManager.get_lock(pool_mapping['edge_id'],
external=True):
with locking.LockManager.get_lock(pool_mapping['edge_id']):
edge_pool = self.vcns.get_pool(pool_mapping['edge_id'],
pool_mapping['edge_pool_id'])[1]
@ -672,8 +667,7 @@ class EdgeLbDriver(object):
LOG.debug('Deleting member %s', member)
if pool_mapping:
with locking.LockManager.get_lock(pool_mapping['edge_id'],
external=True):
with locking.LockManager.get_lock(pool_mapping['edge_id']):
edge_pool = self.vcns.get_pool(
pool_mapping['edge_id'],
pool_mapping['edge_pool_id'])[1]
@ -705,8 +699,7 @@ class EdgeLbDriver(object):
LOG.debug('Create HM %s', health_monitor)
edge_mon_id = None
with locking.LockManager.get_lock(pool_mapping['edge_id'],
external=True):
with locking.LockManager.get_lock(pool_mapping['edge_id']):
# 1st, we find if we already have a pool with the same monitor, on
# the same Edge appliance.
# If there is no pool on this Edge which is already associated with
@ -762,8 +755,7 @@ class EdgeLbDriver(object):
edge_monitor = convert_lbaas_monitor(health_monitor)
try:
with locking.LockManager.get_lock(mon_mapping['edge_id'],
external=True):
with locking.LockManager.get_lock(mon_mapping['edge_id']):
self.vcns.update_health_monitor(
mon_mapping['edge_id'],
mon_mapping['edge_monitor_id'],
@ -790,8 +782,7 @@ class EdgeLbDriver(object):
if not mon_mapping:
return
with locking.LockManager.get_lock(pool_mapping['edge_id'],
external=True):
with locking.LockManager.get_lock(pool_mapping['edge_id']):
edge_pool = self.vcns.get_pool(edge_id,
pool_mapping['edge_pool_id'])[1]
edge_pool['monitorId'].remove(mon_mapping['edge_monitor_id'])

View File

@ -498,7 +498,7 @@ class EdgeManager(object):
return
with locking.LockManager.get_lock(
'nsx-edge-request', lock_file_prefix='get-', external=True):
'nsx-edge-request', lock_file_prefix='get-'):
self._clean_all_error_edge_bindings(context)
available_router_binding = self._get_available_router_binding(
context, appliance_size=appliance_size, edge_type=edge_type)
@ -585,7 +585,7 @@ class EdgeManager(object):
return
with locking.LockManager.get_lock(
'nsx-edge-request', lock_file_prefix='get-', external=True):
'nsx-edge-request', lock_file_prefix='get-'):
self._clean_all_error_edge_bindings(context)
backup_router_bindings = self._get_backup_edge_bindings(
context, appliance_size=binding['appliance_size'],
@ -661,8 +661,7 @@ class EdgeManager(object):
return
with locking.LockManager.get_lock(
str(edge_binding['edge_id']),
lock_file_prefix='nsxv-dhcp-config-',
external=True):
lock_file_prefix='nsxv-dhcp-config-'):
self.update_dhcp_service_config(context, edge_binding['edge_id'])
def update_dhcp_service_config(self, context, edge_id):
@ -786,7 +785,7 @@ class EdgeManager(object):
def allocate_new_dhcp_edge(self, context, network_id, resource_id):
self._allocate_dhcp_edge_appliance(context, resource_id)
with locking.LockManager.get_lock(
'nsx-edge-pool', lock_file_prefix='edge-bind-', external=True):
'nsx-edge-pool', lock_file_prefix='edge-bind-'):
new_edge = nsxv_db.get_nsxv_router_binding(context.session,
resource_id)
nsxv_db.allocate_edge_vnic_with_tunnel_index(
@ -809,8 +808,7 @@ class EdgeManager(object):
# case 1: update a subnet to an existing dhcp edge
if dhcp_edge_binding:
with locking.LockManager.get_lock(
'nsx-edge-pool', lock_file_prefix='edge-bind-',
external=True):
'nsx-edge-pool', lock_file_prefix='edge-bind-'):
edge_id = dhcp_edge_binding['edge_id']
(conflict_edge_ids,
available_edge_ids) = self._get_used_edges(context, subnet)
@ -818,8 +816,7 @@ class EdgeManager(object):
"at present is using edge %s",
available_edge_ids, conflict_edge_ids, edge_id)
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix='nsxv-dhcp-config-',
external=True):
str(edge_id), lock_file_prefix='nsxv-dhcp-config-'):
# Delete the existing vnic interface if there is
# and overlapping subnet
if edge_id in conflict_edge_ids:
@ -843,8 +840,7 @@ class EdgeManager(object):
# case 2: attach the subnet to a new edge and update vnic
else:
with locking.LockManager.get_lock(
'nsx-edge-pool', lock_file_prefix='edge-bind-',
external=True):
'nsx-edge-pool', lock_file_prefix='edge-bind-'):
(conflict_edge_ids,
available_edge_ids) = self._get_used_edges(context, subnet)
LOG.debug('The available edges %s, the conflict edges %s',
@ -885,8 +881,7 @@ class EdgeManager(object):
edge_id, vnic_index, tunnel_index)
try:
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix='nsxv-dhcp-config-',
external=True):
str(edge_id), lock_file_prefix='nsxv-dhcp-config-'):
self._update_dhcp_internal_interface(
context, edge_id, vnic_index, tunnel_index, network_id,
address_groups)
@ -899,8 +894,7 @@ class EdgeManager(object):
'vnic_index': vnic_index,
'tunnel_index': tunnel_index})
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix='nsxv-dhcp-config-',
external=True):
str(edge_id), lock_file_prefix='nsxv-dhcp-config-'):
ports = self.nsxv_plugin.get_ports(
context, filters={'network_id': [network_id]})
inst_ports = [port
@ -930,8 +924,8 @@ class EdgeManager(object):
network_id)
try:
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix='nsxv-dhcp-config-',
external=True):
str(edge_id),
lock_file_prefix='nsxv-dhcp-config-'):
self._delete_dhcp_internal_interface(context, edge_id,
vnic_index,
tunnel_index,
@ -956,12 +950,10 @@ class EdgeManager(object):
if dhcp_edge_binding:
with locking.LockManager.get_lock(
'nsx-edge-pool', lock_file_prefix='edge-bind-',
external=True):
'nsx-edge-pool', lock_file_prefix='edge-bind-'):
edge_id = dhcp_edge_binding['edge_id']
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix='nsxv-dhcp-config-',
external=True):
str(edge_id), lock_file_prefix='nsxv-dhcp-config-'):
self.remove_network_from_dhcp_edge(context, network_id,
edge_id)
@ -987,8 +979,7 @@ class EdgeManager(object):
if not self.per_interface_rp_filter:
with locking.LockManager.get_lock(
'nsx-edge-pool', lock_file_prefix='edge-bind-',
external=True):
'nsx-edge-pool', lock_file_prefix='edge-bind-'):
self.nsxv_manager.vcns.set_system_control(
dhcp_edge_id,
[RP_FILTER_PROPERTY_OFF_TEMPLATE % ('all', '0')])
@ -1027,8 +1018,7 @@ class EdgeManager(object):
if vnic_index:
vnic_id = 'vNic_%d' % vnic_index
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix='nsxv-dhcp-config-',
external=True):
str(edge_id), lock_file_prefix='nsxv-dhcp-config-'):
sysctl_props = []
h, sysctl = self.nsxv_manager.vcns.get_system_control(edge_id)
if sysctl:
@ -1047,8 +1037,7 @@ class EdgeManager(object):
if vnic_index:
vnic_id = 'vNic_%d' % vnic_index
with locking.LockManager.get_lock(
str(edge_id), lock_file_prefix='nsxv-dhcp-config-',
external=True):
str(edge_id), lock_file_prefix='nsxv-dhcp-config-'):
h, sysctl = self.nsxv_manager.vcns.get_system_control(edge_id)
if sysctl:
sysctl_props = sysctl['property']
@ -1175,7 +1164,7 @@ class EdgeManager(object):
Return True if the logical router is bound to a new edge.
"""
with locking.LockManager.get_lock(
"edge-router", lock_file_prefix="bind-", external=True):
"edge-router", lock_file_prefix="bind-"):
optional_edge_ids = []
conflict_edge_ids = []
for router_id in optional_router_ids:
@ -1234,7 +1223,7 @@ class EdgeManager(object):
Return True if no logical router bound to the edge.
"""
with locking.LockManager.get_lock(
"edge-router", lock_file_prefix="bind-", external=True):
"edge-router", lock_file_prefix="bind-"):
# free edge if no other routers bound to the edge
router_ids = self.get_routers_on_same_edge(context, router_id)
if router_ids == [router_id]:
@ -1248,7 +1237,7 @@ class EdgeManager(object):
conflict_network_ids,
intf_num=0):
with locking.LockManager.get_lock(
"edge-router", lock_file_prefix="bind-", external=True):
"edge-router", lock_file_prefix="bind-"):
router_ids = self.get_routers_on_same_edge(context, router_id)
if set(router_ids) & set(conflict_router_ids):
return True
@ -1364,8 +1353,7 @@ def create_dhcp_bindings(context, nsxv_manager, network_id, bindings):
if edge_id:
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix='nsxv-dhcp-config-',
external=True):
lock_file_prefix='nsxv-dhcp-config-'):
for binding in bindings:
nsxv_manager.vcns.create_dhcp_binding(edge_id, binding)
bindings_get = get_dhcp_binding_mappings(nsxv_manager, edge_id)
@ -1401,8 +1389,7 @@ def delete_dhcp_binding(context, nsxv_manager, network_id, mac_address):
if edge_id and dhcp_binding:
with locking.LockManager.get_lock(
str(edge_id),
lock_file_prefix='nsxv-dhcp-config-',
external=True):
lock_file_prefix='nsxv-dhcp-config-'):
nsxv_manager.vcns.delete_dhcp_binding(
edge_id, dhcp_binding.binding_id)
nsxv_db.delete_edge_dhcp_static_binding(