From 744c24ee68ff9d44d340120e3abd8f6502d3d0ad Mon Sep 17 00:00:00 2001 From: Prachi Damle Date: Wed, 20 Feb 2013 15:35:14 -0800 Subject: [PATCH] CLOUDSTACK-1346: Check to see if external devices are used in the network, is hardcoded for specific devices - Changes the check to list all providers of a network and check if it is an external provider --- .../com/cloud/network/NetworkModelImpl.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java index beebb871d8a..ebe5aa4e02a 100644 --- a/server/src/com/cloud/network/NetworkModelImpl.java +++ b/server/src/com/cloud/network/NetworkModelImpl.java @@ -1762,17 +1762,26 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel { @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; } + private List getNetworkProviders(long networkId) { + List providerNames = _ntwkSrvcDao.getDistinctProviders(networkId); + Map providers = new HashMap(); + for (String providerName : providerNames) { + if(!providers.containsKey(providerName)){ + providers.put(providerName, Network.Provider.getProvider(providerName)); + } + } + + return new ArrayList(providers.values()); + } @Override public boolean configure(String name, Map params) throws ConfigurationException {