From df21338b08592bb7a2acac92809b2e7ee531ae98 Mon Sep 17 00:00:00 2001 From: Murali reddy Date: Fri, 23 Dec 2011 23:11:45 +0530 Subject: [PATCH] bug 12719:When restartNetwork() is called ,IpAssocCommand() is called for the public ipaddresses that are owned by Netscaler --- .../com/cloud/network/NetworkManagerImpl.java | 27 ++++++++++++++++--- .../VirtualNetworkApplianceManagerImpl.java | 5 ---- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 01796b1b1ea..e67c0f7a606 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -662,11 +662,32 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag for (NetworkElement element : _networkElements) { try { if (element instanceof FirewallServiceProvider && element instanceof LoadBalancingServiceProvider) { - List allIps = new ArrayList(); + List allIps = new ArrayList(); + NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId()); + + //get the Provider for the LB Service for the offering of the network + //FIXME - in post 3.0 we are going to support multiple providers for the same service per network offering + List providers = _ntwkOfferingSrvcDao.listProvidersForServiceForNetworkOffering(offering.getId(), Service.Lb); + String lbProvider = providers.get(0); + + //get the Provider for the LB Service for the offering of the network + //FIXME - in post 3.0 we are going to support multiple providers for the same service per network offering + providers = _ntwkOfferingSrvcDao.listProvidersForServiceForNetworkOffering(offering.getId(), Service.Firewall); + String fwProvider = providers.get(0); + + if (lbProvider.equalsIgnoreCase(element.getProvider().getName()) && fwProvider.equalsIgnoreCase(element.getProvider().getName())) { allIps.addAll(firewallPublicIps); allIps.addAll(loadbalncerPublicIps); - FirewallServiceProvider fwProvider = (FirewallServiceProvider)element; - fwProvider.applyIps(network, allIps); + } else if (fwProvider.equalsIgnoreCase(element.getProvider().getName())) { + allIps.addAll(firewallPublicIps); + } else if (lbProvider.equalsIgnoreCase(element.getProvider().getName())) { + allIps.addAll(loadbalncerPublicIps); + } else { + continue; + } + + FirewallServiceProvider fwElement = (FirewallServiceProvider)element; + fwElement.applyIps(network, allIps); } else if (element instanceof FirewallServiceProvider) { FirewallServiceProvider fwProvider = (FirewallServiceProvider)element; fwProvider.applyIps(network, firewallPublicIps); diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 225d8e43221..d384d2e0198 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1758,11 +1758,6 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian if (!publicIps.isEmpty()) { - // Re-apply public ip addresses - should come before PF/LB/VPN - if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.Firewall, provider)) { - createAssociateIPCommands(router, publicIps, cmds, 0); - } - List vpns = new ArrayList(); List pfRules = new ArrayList(); List staticNatFirewallRules = new ArrayList();