From 08c33d3a3506c8db4b64654faa2b7918fa38f147 Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Mon, 4 Jul 2016 05:36:07 -0700 Subject: [PATCH] NSX|V: only update firewall if router binding exists Do not try and update an edge that does not exist Change-Id: I9c961b89d2b0aa234c987afd22b6e4bfeca9244d --- vmware_nsx/plugins/nsx_v/vshield/edge_utils.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py b/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py index 4801f34b5f..d1f65ad8e6 100644 --- a/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py +++ b/vmware_nsx/plugins/nsx_v/vshield/edge_utils.py @@ -2221,12 +2221,16 @@ def clear_nat_rules(nsxv_manager, context, router_id): def update_firewall(nsxv_manager, context, router_id, firewall, allow_external=True): jobdata = {'context': context} - edge_id = nsxv_db.get_nsxv_router_binding( - context.session, router_id)['edge_id'] - task = nsxv_manager.asyn_update_firewall(router_id, edge_id, - firewall, jobdata=jobdata, - allow_external=allow_external) - task.wait(task_const.TaskState.RESULT) + binding = nsxv_db.get_nsxv_router_binding( + context.session, router_id) + if binding: + edge_id = binding['edge_id'] + task = nsxv_manager.asyn_update_firewall(router_id, edge_id, + firewall, jobdata=jobdata, + allow_external=allow_external) + task.wait(task_const.TaskState.RESULT) + else: + LOG.warning(_LW("Bindings do not exists for %s"), router_id) def check_network_in_use_at_backend(context, network_id):