NSXT LB: handle listener deletion failures

When deleting a listener which doesn't exist in the backend, the call
shouldn't fail but delete from OpenStack DB and issue an error to the
log file.

Change-Id: I1ee816d82986a651ea2889b1a4a74889e8724dbb
This commit is contained in:
Kobi Samoray 2020-06-01 18:59:07 +03:00
parent c52138c62e
commit a492351970
1 changed files with 10 additions and 8 deletions

View File

@ -220,6 +220,10 @@ class EdgeListenerManager(base_mgr.Nsxv3LoadbalancerBaseManager):
vs_list = lb_service.get('virtual_server_ids') vs_list = lb_service.get('virtual_server_ids')
if vs_list and vs_id in vs_list: if vs_list and vs_id in vs_list:
service_client.remove_virtual_server(lbs_id, vs_id) service_client.remove_virtual_server(lbs_id, vs_id)
except (nsxlib_exc.ResourceNotFound,
nsx_exc.NsxResourceNotFound):
LOG.error('Loadbalancing service %s not found at backend' %
lbs_id)
except nsxlib_exc.ManagerError: except nsxlib_exc.ManagerError:
self.lbv2_driver.listener.failed_completion(context, self.lbv2_driver.listener.failed_completion(context,
listener) listener)
@ -238,10 +242,9 @@ class EdgeListenerManager(base_mgr.Nsxv3LoadbalancerBaseManager):
context.session, lb_id, listener.default_pool_id, context.session, lb_id, listener.default_pool_id,
None) None)
vs_client.delete(vs_id) vs_client.delete(vs_id)
except nsx_exc.NsxResourceNotFound: except (nsxlib_exc.ResourceNotFound, nsx_exc.NsxResourceNotFound):
msg = (_("virtual server not found on nsx: %(vs)s") % LOG.error("virtual server not found on nsx: %(vs)s" %
{'vs': vs_id}) {'vs': vs_id})
raise n_exc.BadRequest(resource='lbaas-listener', msg=msg)
except nsxlib_exc.ManagerError: except nsxlib_exc.ManagerError:
self.lbv2_driver.listener.failed_completion(context, self.lbv2_driver.listener.failed_completion(context,
listener) listener)
@ -250,10 +253,9 @@ class EdgeListenerManager(base_mgr.Nsxv3LoadbalancerBaseManager):
raise n_exc.BadRequest(resource='lbaas-listener', msg=msg) raise n_exc.BadRequest(resource='lbaas-listener', msg=msg)
try: try:
app_client.delete(app_profile_id) app_client.delete(app_profile_id)
except nsx_exc.NsxResourceNotFound: except (nsxlib_exc.ResourceNotFound, nsx_exc.NsxResourceNotFound):
msg = (_("application profile not found on nsx: %s") % LOG.error("application profile not found on nsx: %s" %
app_profile_id) app_profile_id)
raise n_exc.BadRequest(resource='lbaas-listener', msg=msg)
except nsxlib_exc.ManagerError: except nsxlib_exc.ManagerError:
self.lbv2_driver.listener.failed_completion(context, self.lbv2_driver.listener.failed_completion(context,
listener) listener)