':returns: item_list - list of SQS Policies.
: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()
    item_list = []
    exception_map = {}
    from security_monkey.common.sts_connect import connect
    for account in self.accounts:
        account_db = Account.query.filter((Account.name == account)).first()
        account_number = account_db.identifier
        for region in regions():
            app.logger.debug('Checking    {}/{}/{}'.format(SQS.index, account, region.name))
            try:
                sqs = connect(account, 'sqs', region=region)
                all_queues = self.wrap_aws_rate_limited_call(sqs.get_all_queues)
            except Exception as e:
                if (region.name not in TROUBLE_REGIONS):
                    exc = BotoConnectionIssue(str(e), 'sqs', account, region.name)
                    self.slurp_exception((self.index, account, region.name), exc, exception_map, source='{}-watcher'.format(self.index))
                continue
            app.logger.debug('Found    {}    {}'.format(len(all_queues), SQS.i_am_plural))
            for q in all_queues:
                if self.check_ignore_list(q.name):
                    continue
                try:
                    policy = self.wrap_aws_rate_limited_call(q.get_attributes, attributes='Policy')
                    if ('Policy' in policy):
                        try:
                            arn = 'arn:aws:sqs:{region}:{account_number}:{name}'.format(region=region.name, account_number=account_number, name=q.name)
                            json_str = policy['Policy']
                            policy = json.loads(json_str)
                            policy['arn'] = arn
                            item = SQSItem(region=region.name, account=account, name=q.name, arn=arn, config=policy)
                            item_list.append(item)
                        except:
                            self.slurp_exception((self.index, account, region, q.name), InvalidAWSJSON(json_str), exception_map, source='{}-watcher'.format(self.index))
                except boto.exception.SQSError:
                    pass
    return (item_list, exception_map)
