CLOUDSTACK-737
     add xenserver support in UI
     only XenServer and KVM clusters are allowed in security enabled zone.
     only shared security enabled networks are allowed in security enabled zone.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9edfd4b3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9edfd4b3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9edfd4b3

Branch: refs/heads/advancedsg-leaseweb
Commit: 9edfd4b350558ba3c8b6a3bfb589350cd904e336
Parents: 5280a69
Author: anthony <[email protected]>
Authored: Thu Jan 24 17:26:51 2013 -0800
Committer: Wei Zhou <[email protected]>
Committed: Tue Jun 11 11:50:07 2013 +0200

----------------------------------------------------------------------
 server/src/com/cloud/network/NetworkManagerImpl.java   | 13 ++++++++-----
 server/src/com/cloud/resource/ResourceManagerImpl.java |  6 ++++++
 2 files changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9edfd4b3/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java 
b/server/src/com/cloud/network/NetworkManagerImpl.java
index 72f5613..41f64ed 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -1884,11 +1884,14 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
                }
                 // Only Account specific Isolated network with sourceNat 
service disabled are allowed in security group
                 // enabled zone
-                boolean allowCreation = (ntwkOff.getGuestType() == 
GuestType.Isolated 
-                        && 
!_networkModel.areServicesSupportedByNetworkOffering(ntwkOff.getId(), 
Service.SourceNat));
-                if (!allowCreation) {
-                    throw new InvalidParameterValueException("Only Account 
specific Isolated network with sourceNat " +
-                            "service disabled are allowed in security group 
enabled zone");
+                if ( ntwkOff.getGuestType() != GuestType.Shared ){
+                    throw new InvalidParameterValueException("Only shared 
guest network can be created in security group enabled zone");
+                }
+                if ( 
_networkModel.areServicesSupportedByNetworkOffering(ntwkOff.getId(), 
Service.SourceNat)) {
+                    throw new InvalidParameterValueException("Service 
SourceNat is not allowed in security group enabled zone");
+                }
+                if ( 
_networkModel.areServicesSupportedByNetworkOffering(ntwkOff.getId(), 
Service.SecurityGroup)) {
+                    throw new InvalidParameterValueException("network must 
have SecurityGroup provider in security group enabled zone");
                 }
             }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9edfd4b3/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java 
b/server/src/com/cloud/resource/ResourceManagerImpl.java
index b84373c..3a01ac8 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -445,6 +445,12 @@ public class ResourceManagerImpl extends ManagerBase 
implements ResourceManager,
             }
         }
 
+        if (zone.isSecurityGroupEnabled()) {
+            if( hypervisorType != HypervisorType.KVM && hypervisorType != 
HypervisorType.XenServer ) {
+                throw new InvalidParameterValueException("Don't support 
hypervisor type " + hypervisorType + " in advanced security enabled zone");
+            }
+        }
+
         Cluster.ClusterType clusterType = null;
         if (cmd.getClusterType() != null && !cmd.getClusterType().isEmpty()) {
             clusterType = Cluster.ClusterType.valueOf(cmd.getClusterType());

Reply via email to