From ec75ff9581dba6189c529267ff34c550f548e44a Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Wed, 12 Jul 2017 02:18:43 -0700 Subject: [PATCH] NSXV: ensure that binding update does not fail if deleted A concurrent task may have deleted the router binding. Change-Id: Icd5a64f7688c0a8389323deed84d7adf7c949006 (cherry picked from commit ba81638fcb12ce7518082b9daada8609b569b9a2) --- vmware_nsx/plugins/nsx_v/vshield/edge_utils.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py b/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py index 271f8dab0e..7e53329800 100644 --- a/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py +++ b/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py @@ -312,9 +312,13 @@ class EdgeManager(object): def _delete_backup_edges_on_db(self, context, backup_router_bindings): for binding in backup_router_bindings: - nsxv_db.update_nsxv_router_binding( - context.session, binding['router_id'], - status=plugin_const.PENDING_DELETE) + try: + nsxv_db.update_nsxv_router_binding( + context.session, binding['router_id'], + status=plugin_const.PENDING_DELETE) + except db_base_exc.NoResultFound: + LOG.debug("Router binding %s does not exist.", + binding['router_id']) def _delete_backup_edges_at_backend(self, context, backup_router_bindings): for binding in backup_router_bindings: