def authorizeIngressRule()

in SecurityGroups/config/code/index.py [0:0]


def authorizeIngressRule(sg, rule):
    # print(sg, rule, authorize)
    # if authorize:
    permissions = []
    # print("add", rule)
    permission_set = {
        "IpProtocol": rule.protocol,
        "IpRanges": [{"CidrIp": cidr} for cidr in rule.cidrs],
        "Ipv6Ranges": [{"CidrIpv6": cidr} for cidr in rule.ipv6_cidrs],
        "UserIdGroupPairs": [{"GroupId": GroupId} for GroupId in rule.other_security_groups],
        "PrefixListIds": [{"PrefixListId": prefix} for prefix in rule.prefix_list_id],
    }
    _add_entry(permission_set, "FromPort", rule.from_port)
    _add_entry(permission_set, "ToPort", rule.to_port)
    permissions.append(permission_set)
    boto = boto3.client('ec2')
    try:
        response = boto.authorize_security_group_ingress(
            GroupId=sg,
            IpPermissions=[permission_set]
            )
    except client.exceptions.ClientError:
        print('Failed to add Ingress')
        pass