in ec2stack/providers/cloudstack/security_groups.py [0:0]
def _parse_security_group_request(args=None):
"""
Parse the request parameters into a Cloudstack request payload.
@param args: Arguments to include in the request.
@return: Request payload.
"""
if args is None:
args = {}
helpers.require_atleast_one_parameter(['GroupName', 'GroupId'])
if helpers.contains_parameter('GroupName'):
args['securityGroupName'] = helpers.get('GroupName')
args['name'] = helpers.get('GroupName')
elif helpers.contains_parameter('GroupId'):
args['securityGroupId'] = helpers.get('GroupId')
args['id'] = helpers.get('GroupId')
helpers.require_parameters(['IpProtocol'])
args['protocol'] = helpers.get('IpProtocol')
helpers.require_parameters(['FromPort', 'ToPort'])
if args['protocol'] in ['icmp']:
args['icmptype'] = helpers.get('FromPort')
args['icmpcode'] = helpers.get('ToPort')
else:
args['startport'] = helpers.get('FromPort')
args['endport'] = helpers.get('ToPort')
if helpers.get('CidrIp') is None:
args['cidrlist'] = '0.0.0.0/0'
else:
args['cidrlist'] = helpers.get('CidrIp')
return args