Merge "NSXV - complete member deletion when pool is gone" into stable/victoria

This commit is contained in:
Zuul 2021-02-26 16:10:37 +00:00 committed by Gerrit Code Review
commit cb1b981f5e
1 changed files with 16 additions and 1 deletions

View File

@ -178,6 +178,14 @@ class EdgeMemberManagerFromDict(base_mgr.EdgeLoadbalancerBaseManager):
return
pool_binding = nsxv_db.get_nsxv_lbaas_pool_binding(
context.session, lb_id, member['pool_id'])
if not pool_binding:
# Don't fail deletion if the resource is already gone
LOG.warning("Couldn't find pool %s binding during member deletion",
member['pool_id'])
completor(success=True)
return
edge_id = lb_binding['edge_id']
old_lb = lb_common.is_lb_on_router_edge(
@ -206,7 +214,14 @@ class EdgeMemberManagerFromDict(base_mgr.EdgeLoadbalancerBaseManager):
return
edge_pool_id = pool_binding['edge_pool_id']
edge_pool = self.vcns.get_pool(edge_id, edge_pool_id)[1]
try:
edge_pool = self.vcns.get_pool(edge_id, edge_pool_id)[1]
except nsxv_exc.RequestBad:
# Pool doesn't exist, so member is obviously gone
LOG.warning('Edge pool %s does not exist on edge %s',
edge_pool_id, edge_id)
completor(success=True)
return
for i, m in enumerate(edge_pool['member']):
if m['name'] == lb_common.get_member_id(member['id']):