NSX|V: only update firewall if router binding exists

Do not try and update an edge that does not exist

Change-Id: I9c961b89d2b0aa234c987afd22b6e4bfeca9244d
This commit is contained in:
Gary Kotton 2016-07-04 05:36:07 -07:00
parent 8bd69430b2
commit 08c33d3a35
1 changed files with 10 additions and 6 deletions

View File

@ -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):