From e59a2f2ef6fcda68195a04762ca8cede4dd39ada Mon Sep 17 00:00:00 2001 From: Prachi Damle Date: Tue, 7 Aug 2012 18:00:50 -0700 Subject: [PATCH] CS-14817 Intergrating External network service provider using pluggable interface - issue with CreateNetwork and UpdateNetwork Changes: - While checking if network has any external provider, we should consider all providers in the network. Not just F5, Juniper, Netscalar --- .../com/cloud/network/NetworkManagerImpl.java | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index be604943d7d..9d072b1f39c 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -4331,27 +4331,25 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag @Override public boolean networkIsConfiguredForExternalNetworking(long zoneId, long networkId) { - boolean netscalerInNetwork = isProviderForNetwork(Network.Provider.Netscaler, networkId); - boolean juniperInNetwork = isProviderForNetwork(Network.Provider.JuniperSRX, networkId); - boolean f5InNetwork = isProviderForNetwork(Network.Provider.F5BigIp, networkId); - - if (netscalerInNetwork || juniperInNetwork || f5InNetwork) { - return true; - } else { - return false; + List networkProviders = getNetworkProviders(networkId); + for(Provider provider : networkProviders){ + if(provider.isExternal()){ + return true; + } } + return false; } + public boolean networkOfferingIsConfiguredForExternalNetworking(long networkOfferingId) { - boolean netscalerInNetworkOffering = isProviderForNetworkOffering(Network.Provider.Netscaler, networkOfferingId); - boolean juniperInNetworkOffering = isProviderForNetworkOffering(Network.Provider.JuniperSRX, networkOfferingId); - boolean f5InNetworkOffering = isProviderForNetworkOffering(Network.Provider.F5BigIp, networkOfferingId); - - if (netscalerInNetworkOffering || juniperInNetworkOffering || f5InNetworkOffering) { - return true; - } else { - return false; + List networkOffProviders = getNtwkOffDistinctProviders(networkOfferingId); + for(Provider provider : networkOffProviders){ + if(provider.isExternal()){ + return true; + } } + return false; + } @Override @@ -6772,12 +6770,14 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag private List getNetworkProviders(long networkId) { List providerNames = _ntwkSrvcDao.getDistinctProviders(networkId); - List providers = new ArrayList(); + Map providers = new HashMap(); for (String providerName : providerNames) { - providers.add(Network.Provider.getProvider(providerName)); + if(!providers.containsKey(providerName)){ + providers.put(providerName, Network.Provider.getProvider(providerName)); + } } - return providers; + return new ArrayList(providers.values()); } @Override @@ -7125,12 +7125,14 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag @Override public List getNtwkOffDistinctProviders(long networkId) { List providerNames = _ntwkOfferingSrvcDao.getDistinctProviders(networkId); - List providers = new ArrayList(); + Map providers = new HashMap(); for (String providerName : providerNames) { - providers.add(Network.Provider.getProvider(providerName)); + if(!providers.containsKey(providerName)){ + providers.put(providerName, Network.Provider.getProvider(providerName)); + } } - return providers; + return new ArrayList(providers.values()); } @Override