Merge "NSXv: ensure that locking is done with flag 'external=True'"
This commit is contained in:
commit
45442211fc
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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'])
|
||||
|
@ -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(
|
||||
|
Loading…
x
Reference in New Issue
Block a user