From 58e92df85fdb844d2847a271fff7bd6095fc4e0b Mon Sep 17 00:00:00 2001 From: linb Date: Tue, 25 Aug 2015 14:48:34 +0800 Subject: [PATCH] Fix dirty DB entries left on deleting vdr with GW Neutron allows deleting a router with gw set. For distributed router's gw, we actually nees a plr and a internal virtualwire to support implementation. When deleting a distributed router, we needs to verify and clear all these components. Change-Id: I7088a90acf1635ea0dbc20bbc6835835df24b07e Fixes-bug: #1505008 --- vmware_nsx/neutron/plugins/vmware/plugins/nsx_v.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vmware_nsx/neutron/plugins/vmware/plugins/nsx_v.py b/vmware_nsx/neutron/plugins/vmware/plugins/nsx_v.py index 81e407c45f..f844a167d2 100644 --- a/vmware_nsx/neutron/plugins/vmware/plugins/nsx_v.py +++ b/vmware_nsx/neutron/plugins/vmware/plugins/nsx_v.py @@ -1390,6 +1390,11 @@ class NsxVPluginV2(agents_db.AgentDbMixin, def delete_router(self, context, id): self._check_router_in_use(context, id) router_driver = self._find_router_driver(context, id) + # Clear vdr's gw relative components if the router has gw info + if router_driver.get_type() == "distributed": + router = self.get_router(context, id) + if router.get(l3.EXTERNAL_GW_INFO): + router_driver._update_router_gw_info(context, id, {}) super(NsxVPluginV2, self).delete_router(context, id) router_driver.delete_router(context, id)