Skip to content

Commit df21338

Browse files
Murali reddyMurali reddy
authored andcommitted
bug 12719:When restartNetwork() is called ,IpAssocCommand() is called for the public ipaddresses that are owned by Netscaler
1 parent f259fec commit df21338

2 files changed

Lines changed: 24 additions & 8 deletions

File tree

server/src/com/cloud/network/NetworkManagerImpl.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -662,11 +662,32 @@ protected boolean applyIpAssociations(Network network, boolean rulesRevoked, boo
662662
for (NetworkElement element : _networkElements) {
663663
try {
664664
if (element instanceof FirewallServiceProvider && element instanceof LoadBalancingServiceProvider) {
665-
List<PublicIp> allIps = new ArrayList<PublicIp>();
665+
List<PublicIp> allIps = new ArrayList<PublicIp>();
666+
NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId());
667+
668+
//get the Provider for the LB Service for the offering of the network
669+
//FIXME - in post 3.0 we are going to support multiple providers for the same service per network offering
670+
List<String> providers = _ntwkOfferingSrvcDao.listProvidersForServiceForNetworkOffering(offering.getId(), Service.Lb);
671+
String lbProvider = providers.get(0);
672+
673+
//get the Provider for the LB Service for the offering of the network
674+
//FIXME - in post 3.0 we are going to support multiple providers for the same service per network offering
675+
providers = _ntwkOfferingSrvcDao.listProvidersForServiceForNetworkOffering(offering.getId(), Service.Firewall);
676+
String fwProvider = providers.get(0);
677+
678+
if (lbProvider.equalsIgnoreCase(element.getProvider().getName()) && fwProvider.equalsIgnoreCase(element.getProvider().getName())) {
666679
allIps.addAll(firewallPublicIps);
667680
allIps.addAll(loadbalncerPublicIps);
668-
FirewallServiceProvider fwProvider = (FirewallServiceProvider)element;
669-
fwProvider.applyIps(network, allIps);
681+
} else if (fwProvider.equalsIgnoreCase(element.getProvider().getName())) {
682+
allIps.addAll(firewallPublicIps);
683+
} else if (lbProvider.equalsIgnoreCase(element.getProvider().getName())) {
684+
allIps.addAll(loadbalncerPublicIps);
685+
} else {
686+
continue;
687+
}
688+
689+
FirewallServiceProvider fwElement = (FirewallServiceProvider)element;
690+
fwElement.applyIps(network, allIps);
670691
} else if (element instanceof FirewallServiceProvider) {
671692
FirewallServiceProvider fwProvider = (FirewallServiceProvider)element;
672693
fwProvider.applyIps(network, firewallPublicIps);

server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1758,11 +1758,6 @@ public boolean finalizeCommandsOnStart(Commands cmds, VirtualMachineProfile<Doma
17581758

17591759
if (!publicIps.isEmpty()) {
17601760

1761-
// Re-apply public ip addresses - should come before PF/LB/VPN
1762-
if (_networkMgr.isProviderSupportServiceInNetwork(router.getNetworkId(), Service.Firewall, provider)) {
1763-
createAssociateIPCommands(router, publicIps, cmds, 0);
1764-
}
1765-
17661761
List<RemoteAccessVpn> vpns = new ArrayList<RemoteAccessVpn>();
17671762
List<PortForwardingRule> pfRules = new ArrayList<PortForwardingRule>();
17681763
List<FirewallRule> staticNatFirewallRules = new ArrayList<FirewallRule>();

0 commit comments

Comments
 (0)