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/e18ff282 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e18ff282 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e18ff282 Branch: refs/heads/master Commit: e18ff2821d30a0a53e768c30ab5f01102445c0eb Parents: 2df5df1 Author: Murali Reddy <[email protected]> Authored: Wed May 7 20:03:28 2014 +0530 Committer: Murali Reddy <[email protected]> Committed: Wed May 7 20:05:47 2014 +0530 ---------------------------------------------------------------------- .../configuration/ConfigurationManagerImpl.java | 21 ++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e18ff282/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 7211638..9081051 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -3979,17 +3979,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()); + } } } }
