@@ -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 );
0 commit comments