def get_elb_data()

in network-load-balancer-copy-utility/copy_network_load_balancer.py [0:0]


def get_elb_data(elb_name, 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:
        describe_load_balancers = elbc.describe_load_balancers(
            LoadBalancerNames=[elb_name])
    except botocore.exceptions.ClientError as exception:
        if 'LoadBalancerNotFound' in exception.response['Error']['Code']:
            logger.error('Cannot find a Classic Load Balancer in region {} named {}'.format(
                region, elb_name))
        else:
            logger.debug(exception)
    # Describes the attributes for the specified Classic Load Balancer.
    describe_load_balancer_attributes = elbc.describe_load_balancer_attributes(
        LoadBalancerName=elb_name)

    # Describes the specified policies.
    describe_load_balancer_policies = elbc.describe_load_balancer_policies(
        LoadBalancerName=elb_name)

    # Describes the tags associated with the specified Classic Load Balancers.

    describe_tags = elbc.describe_tags(
        LoadBalancerNames=[elb_name])

    # Render a dictionary that contains the Classic Load Balancer attributes
    elb_data = {}
    elb_data.update(describe_load_balancers)
    elb_data.update(describe_load_balancer_attributes)
    elb_data.update(describe_load_balancer_policies)
    elb_data.update(describe_tags)
    if debug:
        logger.debug("elb data:")
        logger.debug(elb_data)
    return elb_data