From df65b2e7c438986fac645f0a33688f8b36a12152 Mon Sep 17 00:00:00 2001 From: Murali Reddy Date: Wed, 7 May 2014 20:03:28 +0530 Subject: [PATCH] CLOUDSTACK-6593: Connectivity service capabilites should be matched with the provider only if at least one capability is specified Fix avoids the check, and only if the createNetworkOffering 'StrechedL2'Subnet' capability is specified then it should match against 'Connectivity' service provider --- .../ConfigurationManagerImpl.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 6f3a0e27fa1..231b5e1dc20 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -3968,17 +3968,18 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati + " specified with connectivity service."); } } - } - if (providers != null && !providers.isEmpty()) { - for (Provider provider: providers) { - NetworkElement element = _networkModel.getElementImplementingProvider(provider.getName()); - Map> capabilities = element.getCapabilities(); - if (capabilities != null && !capabilities.isEmpty()) { - Map connectivityCapabilities = capabilities.get(Service.Connectivity); - if (connectivityCapabilities == null || (connectivityCapabilities != null && !connectivityCapabilities.keySet().contains(Capability.StretchedL2Subnet))) { - throw new InvalidParameterValueException("Provider: " + provider.getName() + " does not support " - + Capability.StretchedL2Subnet.getName()); + // validate connectivity service provider actually supports specified capabilities + if (providers != null && !providers.isEmpty()) { + for (Provider provider: providers) { + NetworkElement element = _networkModel.getElementImplementingProvider(provider.getName()); + Map> capabilities = element.getCapabilities(); + if (capabilities != null && !capabilities.isEmpty()) { + Map connectivityCapabilities = capabilities.get(Service.Connectivity); + if (connectivityCapabilities == null || (connectivityCapabilities != null && !connectivityCapabilities.keySet().contains(Capability.StretchedL2Subnet))) { + throw new InvalidParameterValueException("Provider: " + provider.getName() + " does not support " + + Capability.StretchedL2Subnet.getName()); + } } } }