<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def get_attributes(name, region=None, key=None, keyid=None, profile=None):
    '''
    Check to see if attributes are set on an ELB.

    CLI example:

    .. code-block:: bash

        salt myminion boto_elb.get_attributes myelb
    '''
    conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)
    retries = 30

    while retries:
        try:
            lbattrs = conn.get_all_lb_attributes(name)
            ret = odict.OrderedDict()
            ret['access_log'] = odict.OrderedDict()
            ret['cross_zone_load_balancing'] = odict.OrderedDict()
            ret['connection_draining'] = odict.OrderedDict()
            ret['connecting_settings'] = odict.OrderedDict()
            al = lbattrs.access_log
            czlb = lbattrs.cross_zone_load_balancing
            cd = lbattrs.connection_draining
            cs = lbattrs.connecting_settings
            ret['access_log']['enabled'] = al.enabled
            ret['access_log']['s3_bucket_name'] = al.s3_bucket_name
            ret['access_log']['s3_bucket_prefix'] = al.s3_bucket_prefix
            ret['access_log']['emit_interval'] = al.emit_interval
            ret['cross_zone_load_balancing']['enabled'] = czlb.enabled
            ret['connection_draining']['enabled'] = cd.enabled
            ret['connection_draining']['timeout'] = cd.timeout
            ret['connecting_settings']['idle_timeout'] = cs.idle_timeout
            return ret
        except boto.exception.BotoServerError as e:
            if e.error_code == 'Throttling':
                log.debug("Throttled by AWS API, will retry in 5 seconds...")
                time.sleep(5)
                retries -= 1
                continue
            log.error('ELB %s does not exist: %s', name, e.message)
            return {}
    return {}