From 8bd69430b2348a8bd5d986ea51c257a06eadfe31 Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Thu, 30 Jun 2016 05:55:45 -0700 Subject: [PATCH] NSX|V: don't fail when router binding does not exist Validate that the binding exists prior to accessing the data. Change-Id: I7ddec7d00267e5a97902ceae0fb0c71a135ebc8e Closes-bug: #1597758 --- vmware_nsx/plugins/nsx_v/vshield/edge_utils.py | 9 ++++++--- 1 file changed, 6 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 a71c3b1257..4801f34b5f 100644 --- a/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py +++ b/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py @@ -2190,9 +2190,12 @@ def _delete_interface(nsxv_manager, context, router_id, network_id, def update_nat_rules(nsxv_manager, context, router_id, snat, dnat): binding = nsxv_db.get_nsxv_router_binding(context.session, router_id) - task = nsxv_manager.update_nat_rules( - router_id, binding['edge_id'], snat, dnat) - task.wait(task_const.TaskState.RESULT) + if binding: + task = nsxv_manager.update_nat_rules( + router_id, binding['edge_id'], snat, dnat) + task.wait(task_const.TaskState.RESULT) + else: + LOG.warning(_LW("Bindings do not exists for %s"), router_id) def update_dnat_rules(nsxv_manager, context, router_id, dnat_rules):