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());
+                        }
                     }
                 }
             }

Reply via email to