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

Reply via email to