':returns: item_list - list of SES Identities.
: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():
            if (region.name == 'eu-central-1'):
                continue
            app.logger.debug('Checking    {}/{}/{}'.format(self.index, account, region.name))
            try:
                ses = connect(account, 'ses', region=region.name)
                response = self.wrap_aws_rate_limited_call(ses.list_identities)
                identities = response.Identities
                domains = []
                verified_domains = []
                for identity in identities:
                    if (not ('@' in identity)):
                        domains.append(identity)
                if (len(domains) > 0):
                    response = self.wrap_aws_rate_limited_call(ses.get_identity_verification_attributes, domains)
                    results = response.GetIdentityVerificationAttributesResponse.GetIdentityVerificationAttributesResult.VerificationAttributes
                    for result in results:
                        if (result.value.VerificationStatus == 'Success'):
                            verified_domains.append(result.key)
                response = self.wrap_aws_rate_limited_call(ses.list_verified_email_addresses)
                verified_identities = response.VerifiedEmailAddresses
                verified_identities += verified_domains
            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, source='{}-watcher'.format(self.index))
                continue
            app.logger.debug('Found    {}    {}.    {}    are    verified.'.format(len(identities), self.i_am_plural, len(verified_identities)))
            for identity in identities:
                if self.check_ignore_list(identity):
                    continue
                config = {'name': identity, 'verified': (identity in verified_identities)}
                item = SESItem(region=region.name, account=account, name=identity, config=dict(config))
                item_list.append(item)
    return (item_list, exception_map)
