Add None protection for router and vnic binding objects
In delete_plr_by_tlr_id, attempt to access None object resulted in exception. This commit adds protection agains this. Change-Id: Id0689ee9bafa9a4c3353e4b6e830a6c3d591a156
This commit is contained in:
parent
4798f3986d
commit
02b820b53c
@ -1611,17 +1611,27 @@ class EdgeManager(object):
|
|||||||
context.session, router_id)
|
context.session, router_id)
|
||||||
lswitch_id = tlr_binding.lswitch_id
|
lswitch_id = tlr_binding.lswitch_id
|
||||||
tlr_edge_id = tlr_binding.edge_id
|
tlr_edge_id = tlr_binding.edge_id
|
||||||
plr_edge_id = nsxv_db.get_nsxv_router_binding(
|
router_binding = nsxv_db.get_nsxv_router_binding(
|
||||||
context.session, plr_id).edge_id
|
context.session, plr_id)
|
||||||
plr_vnic_index = nsxv_db.get_edge_vnic_binding(
|
|
||||||
context.session, plr_edge_id, lswitch_id).vnic_index
|
if router_binding is None:
|
||||||
# Clear static routes before delete internal vnic
|
LOG.debug("Router binding not found for router: %s", router_id)
|
||||||
self.nsxv_manager.update_routes(plr_edge_id, None, [])
|
else:
|
||||||
|
plr_edge_id = router_binding.edge_id
|
||||||
|
vnic_binding = nsxv_db.get_edge_vnic_binding(
|
||||||
|
context.session, plr_edge_id, lswitch_id)
|
||||||
|
if vnic_binding is None:
|
||||||
|
LOG.debug("Vnic binding not found for router: %s", router_id)
|
||||||
|
else:
|
||||||
|
# Clear static routes before delete internal vnic
|
||||||
|
self.nsxv_manager.update_routes(plr_edge_id, None, [])
|
||||||
|
|
||||||
|
# Delete internal vnic
|
||||||
|
self.nsxv_manager.delete_interface(plr_id, plr_edge_id,
|
||||||
|
vnic_binding.vnic_index)
|
||||||
|
nsxv_db.free_edge_vnic_by_network(
|
||||||
|
context.session, plr_edge_id, lswitch_id)
|
||||||
|
|
||||||
# Delete internal vnic
|
|
||||||
self.nsxv_manager.delete_interface(plr_id, plr_edge_id, plr_vnic_index)
|
|
||||||
nsxv_db.free_edge_vnic_by_network(
|
|
||||||
context.session, plr_edge_id, lswitch_id)
|
|
||||||
# Delete the PLR
|
# Delete the PLR
|
||||||
self.delete_lrouter(context, plr_id)
|
self.delete_lrouter(context, plr_id)
|
||||||
|
|
||||||
@ -1629,12 +1639,16 @@ class EdgeManager(object):
|
|||||||
self.nsxv_manager.update_routes(tlr_edge_id, None, [])
|
self.nsxv_manager.update_routes(tlr_edge_id, None, [])
|
||||||
|
|
||||||
#First delete the vdr's external interface
|
#First delete the vdr's external interface
|
||||||
tlr_vnic_index = nsxv_db.get_edge_vnic_binding(
|
tlr_vnic_binding = nsxv_db.get_edge_vnic_binding(
|
||||||
context.session, tlr_edge_id, lswitch_id).vnic_index
|
context.session, tlr_edge_id, lswitch_id)
|
||||||
self.nsxv_manager.delete_vdr_internal_interface(
|
if tlr_vnic_binding is None:
|
||||||
tlr_edge_id, tlr_vnic_index)
|
LOG.debug("Vnic binding not found for router: %s", router_id)
|
||||||
nsxv_db.delete_edge_vnic_binding_by_network(
|
else:
|
||||||
context.session, tlr_edge_id, lswitch_id)
|
self.nsxv_manager.delete_vdr_internal_interface(
|
||||||
|
tlr_edge_id, tlr_vnic_binding.vnic_index)
|
||||||
|
nsxv_db.delete_edge_vnic_binding_by_network(
|
||||||
|
context.session, tlr_edge_id, lswitch_id)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Then delete the internal lswitch
|
# Then delete the internal lswitch
|
||||||
self.nsxv_manager.delete_virtual_wire(lswitch_id)
|
self.nsxv_manager.delete_virtual_wire(lswitch_id)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user