diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 7df6e461bdf..e33a910a9d5 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -4785,7 +4785,19 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag _dcDao.deleteVnet(physicalNetworkId); // delete service providers - _pNSPDao.deleteProviders(physicalNetworkId); + List providers = _pNSPDao.listBy(physicalNetworkId); + + for(PhysicalNetworkServiceProviderVO provider : providers){ + try { + deleteNetworkServiceProvider(provider.getId()); + }catch (ResourceUnavailableException e) { + s_logger.warn("Unable to complete destroy of the physical network provider: " + provider.getProviderName() + ", id: "+ provider.getId(), e); + return false; + } catch (ConcurrentOperationException e) { + s_logger.warn("Unable to complete destroy of the physical network provider: " + provider.getProviderName() + ", id: "+ provider.getId(), e); + return false; + } + } // delete traffic types _pNTrafficTypeDao.deleteTrafficTypes(physicalNetworkId); diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index 0b9cbd40b6c..f715764128a 100755 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -59,7 +59,6 @@ import com.cloud.network.lb.LoadBalancingRule; import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy; import com.cloud.network.lb.LoadBalancingRulesManager; import com.cloud.network.router.VirtualNetworkApplianceManager; -import com.cloud.network.router.VirtualRouter; import com.cloud.network.router.VirtualRouter.Role; import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.LbStickinessMethod; @@ -672,6 +671,8 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl for (DomainRouterVO router : routers) { result = result && (_routerMgr.destroyRouter(router.getId()) != null); } + _vrProviderDao.remove(elementId); + return result; }