':returns: item_list - list of connections
:returns: exception_map - A dict where the keys are a tuple containing the
location of the exception and the value is the actual exception'

def slurp(self):

    self.prep_for_slurp()
    from security_monkey.common.sts_connect import connect
    item_list = []
    exception_map = {}
    for account in self.accounts:
        for region in regions():
            app.logger.debug('Checking    {}/{}/{}'.format(self.index, account, region.name))
            try:
                dc = connect(account, 'boto3.directconnect.client', region=region)
                response = self.wrap_aws_rate_limited_call(dc.describe_connections)
                connections = response.get('connections')
            except Exception as e:
                if (region.name not in TROUBLE_REGIONS):
                    exc = BotoConnectionIssue(str(e), self.index, account, region.name)
                    self.slurp_exception((self.index, account, region.name), exc, exception_map)
                continue
            app.logger.debug('Found    {}    {}.'.format(len(connections), self.i_am_plural))
            for connection in connections:
                name = connection['connectionName']
                if self.check_ignore_list(name):
                    continue
                config = {'name': name, 'owner_account': connection.get('ownerAccount'), 'connection_id': connection.get('connectionId'), 'connection_name': connection.get('connectionName'), 'connection_state': connection.get('connectionState'), 'region': connection.get('region'), 'location': connection.get('location'), 'bandwidth': connection.get('bandwidth'), 'vlan': connection.get('vlan'), 'partner_name': connection.get('partnerName')}
                item = ConnectionItem(region=region.name, account=account, name=name, config=dict(config))
                item_list.append(item)
    return (item_list, exception_map)
