def get_all_load_balancers()

in Back-End/lambdas/receive_sqs_message.py [0:0]


def get_all_load_balancers(account_number, region, cross_account_role):

    # Init
    var_list = []

    # Use boto3 on source account
    client_elb = create_boto_client(
        account_number, region, 'elb', cross_account_role)

    # ALB/NLB
    client_elbv2 = create_boto_client(
        account_number, region, 'elbv2', cross_account_role)

    # Page all elb's
    paginator = client_elb.get_paginator('describe_load_balancers')

    for page in paginator.paginate():
        for i in page['LoadBalancerDescriptions']:

            var_list.append(
                {
                    'EntryType': 'lb',
                    'LoadBalancerName': str(i['LoadBalancerName']),
                    'Id': str(i['DNSName']),
                    'Scheme': str(i['Scheme']),
                    'VPC': str(i['VPCId']),
                    'State': 'n/a',
                    'AccountNumber': str(account_number),
                    'Region': str(region),
                    'AvailabilityZones': str(i['AvailabilityZones']),
                    'SecurityGroups': str(i['SecurityGroups']),
                    'Type': 'classic'
                })

    # Page all ALB/NLB
    paginator2 = client_elbv2.get_paginator('describe_load_balancers')

    for page in paginator2.paginate():
        for i in page['LoadBalancers']:

            var_list.append(
                {
                    'EntryType': 'lb',
                    'LoadBalancerName': str(i['LoadBalancerName']),
                    'Id': str(i['DNSName']),
                    'Scheme': str(i['Scheme']),
                    'State': str(i['State']['Code']),
                    'VPC': str(i['VpcId']),
                    'AccountNumber': str(account_number),
                    'Region': str(region),
                    'AvailabilityZones': str(i['AvailabilityZones']),
                    'SecurityGroups': str(i.get('SecurityGroups', ' ')),
                    'Type': str(i['Type'])
                })

    return var_list