def get_elb_data()

in classic-load-balancer-consolelink-utility/consolelink_classic_load_balancer.py [0:0]


def get_elb_data(region):
    '''
    Describe the Classic Load Balancer and retrieve attributes
    '''
    if debug:
        logger.debug("Getting existing Classic Load Balancer data")
    elbc = boto3.client('elb', region_name=region)
    # Describes the specified Classic Load Balancer.
    try:
        paginator = elbc.get_paginator('describe_load_balancers')
    except botocore.exceptions.ClientError as e:
        logger.error(e.response['Error']['Message'])
    elb_data = []
    for describe_load_balancers in paginator.paginate():
    # Render a dictionary that contains the Classic Load Balancer attributes
        for lb in describe_load_balancers['LoadBalancerDescriptions']:
            elb_item = {}
            elb_item['DNSName']= lb['DNSName']
            elb_item['Scheme'] = lb['Scheme']
            elb_item['HostedZoneID'] = lb['CanonicalHostedZoneNameID']
            elb_item['Name'] = lb['LoadBalancerName']
            elb_item['ConsoleLink'] = CONSOLE_PREFIX + str(region) + '#LoadBalancers:loadBalancerName=' + lb['LoadBalancerName']
            elb_item['CreatedTime'] = lb['CreatedTime']
            elb_item['AvailabilityZones'] = lb['AvailabilityZones']
            elb_item['BackendInstances'] = lb['Instances']
            # Check if a Classic Load Balancer is in EC2-Classic or EC2-VPC
            if not lb['Subnets']:
                elb_item['EC2Platform'] = 'EC2-Classic'
                elb_item['Subnets'] = None
                elb_item['SecurityGroup'] = lb['SourceSecurityGroup']['GroupName']
                elb_item['VPCId'] = None
            else:
                elb_item['EC2Platform'] = 'EC2-VPC'
                elb_item['Subnets'] = lb['Subnets']
                elb_item['SecurityGroup'] = lb['SecurityGroups']
                elb_item['VPCId'] = lb['VPCId']
            elb_data.append(elb_item)
    if debug:
        logger.debug("elb data:")
        logger.debug(elb_data)
    return elb_data