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"]