Repository: cloudstack Updated Branches: refs/heads/4.4-forward eaf04d44a -> df65b2e7c
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 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/df65b2e7 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/df65b2e7 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/df65b2e7 Branch: refs/heads/4.4-forward Commit: df65b2e7c438986fac645f0a33688f8b36a12152 Parents: eaf04d4 Author: Murali Reddy <muralimmre...@gmail.com> Authored: Wed May 7 20:03:28 2014 +0530 Committer: Murali Reddy <muralimmre...@gmail.com> Committed: Wed May 7 20:03:28 2014 +0530 ---------------------------------------------------------------------- .../configuration/ConfigurationManagerImpl.java | 21 ++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/df65b2e7/server/src/com/cloud/configuration/ConfigurationManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 6f3a0e2..231b5e1 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<Service, Map<Capability, String>> capabilities = element.getCapabilities(); - if (capabilities != null && !capabilities.isEmpty()) { - Map<Capability, String> 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<Service, Map<Capability, String>> capabilities = element.getCapabilities(); + if (capabilities != null && !capabilities.isEmpty()) { + Map<Capability, String> 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()); + } } } }