Updated Branches:
  refs/heads/4.2 5eaec0a5e -> 3c360ce02

CLOUDSTACK:3452: Check if security groups feature is enabled in basic zone 
before creating security group while creating VM

Signed-off-by: Prasanna Santhanam <t...@apache.org>


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

Branch: refs/heads/4.2
Commit: 3c360ce02807240586d471ab4c0cbd24d76ed7e6
Parents: 5eaec0a
Author: Gaurav Aradhye <gaurav.arad...@clogeny.com>
Authored: Fri Jul 19 02:16:16 2013 -0400
Committer: Prasanna Santhanam <t...@apache.org>
Committed: Sat Jul 20 12:28:06 2013 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/integration/lib/base.py | 61 ++++++++++++++----------
 1 file changed, 36 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3c360ce0/tools/marvin/marvin/integration/lib/base.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/base.py 
b/tools/marvin/marvin/integration/lib/base.py
index 03c0707..0938333 100755
--- a/tools/marvin/marvin/integration/lib/base.py
+++ b/tools/marvin/marvin/integration/lib/base.py
@@ -294,40 +294,51 @@ class VirtualMachine:
             cmd.securitygroupids = [str(sg_id) for sg_id in securitygroupids]
 
         if mode.lower() == 'basic':
-            list_security_groups = SecurityGroup.list(
-                                                      apiclient,
-                                                      
securitygroupname="basic_sec_grp"
-                                                      )
 
-            if not isinstance(list_security_groups, list):
-                basic_mode_security_group = SecurityGroup.create(
+            zone_list = Zone.list(
+                            apiclient,
+                            id = cmd.zoneid if cmd.zoneid else None,
+                            domainid = cmd.domainid if cmd.domainid else None
+                            )
+
+            zone = zone_list[0]
+
+            #check if security groups settings is enabled for the zone
+            if zone.securitygroupsenabled:
+                list_security_groups = SecurityGroup.list(
+                                                          apiclient,
+                                                          
securitygroupname="basic_sec_grp"
+                                                          )
+
+                if not isinstance(list_security_groups, list):
+                    basic_mode_security_group = SecurityGroup.create(
                                                             apiclient,
                                                             
{"name":"basic_sec_grp"}
                                                             )
-                sec_grp_services = {"protocol": "TCP",
+                    sec_grp_services = {"protocol": "TCP",
                                     "startport": 22,
                                     "endport":22,
                                     "cidrlist": "0.0.0.0/0"
                                    }
 
-                #Authorize security group for above ingress rule
-                cmd_auth = 
authorizeSecurityGroupIngress.authorizeSecurityGroupIngressCmd()
-                cmd_auth.domainid = cmd.domainid
-                cmd_auth.account = cmd.account
-                cmd_auth.securitygroupid = basic_mode_security_group.id
-                cmd_auth.protocol = sec_grp_services["protocol"]
-                cmd_auth.startport = sec_grp_services["startport"]
-                cmd_auth.endport = sec_grp_services["endport"]
-                cmd_auth.cidrlist = sec_grp_services["cidrlist"]
-                apiclient.authorizeSecurityGroupIngress(cmd_auth)
-
-            else:
-                basic_mode_security_group = list_security_groups[0]
-
-            if isinstance(cmd.securitygroupids, list):
-                cmd.securitygroupids.append(basic_mode_security_group.id)
-            else:
-                cmd.securitygroupids = [basic_mode_security_group.id]
+                    #Authorize security group for above ingress rule
+                    cmd_auth = 
authorizeSecurityGroupIngress.authorizeSecurityGroupIngressCmd()
+                    cmd_auth.domainid = cmd.domainid
+                    cmd_auth.account = cmd.account
+                    cmd_auth.securitygroupid = basic_mode_security_group.id
+                    cmd_auth.protocol = sec_grp_services["protocol"]
+                    cmd_auth.startport = sec_grp_services["startport"]
+                    cmd_auth.endport = sec_grp_services["endport"]
+                    cmd_auth.cidrlist = sec_grp_services["cidrlist"]
+                    apiclient.authorizeSecurityGroupIngress(cmd_auth)
+
+                else:
+                    basic_mode_security_group = list_security_groups[0]
+
+                if isinstance(cmd.securitygroupids, list):
+                    cmd.securitygroupids.append(basic_mode_security_group.id)
+                else:
+                    cmd.securitygroupids = [basic_mode_security_group.id]
 
         if "affinitygroupnames" in services:
             cmd.affinitygroupnames  = services["affinitygroupnames"]

Reply via email to