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