':returns: item_list - list of available EC2 images defined by account
: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()
    @iter_account_region(index=self.index, accounts=self.accounts, service_name='ec2')
    def slurp_items(**kwargs):
        item_list = []
        exception_map = {}
        kwargs['exception_map'] = exception_map
        app.logger.debug('Checking    {}/{}/{}'.format(self.index, kwargs['account_name'], kwargs['region']))
        images = self.describe_images(**kwargs)
        if images:
            app.logger.debug('Found    {}    {}.'.format(len(images), self.i_am_plural))
            for image in images:
                name = image['ImageId']
                if self.check_ignore_list(name):
                    continue
                item_config = {'name': name, 'image_id': image.get('ImageId'), 'image_location': image.get('ImageLocation'), 'state': image.get('State'), 'owner_id': image.get('OwnerId'), 'creation_date': str(image.get('CreationDate')), 'public': image.get('Public'), 'root_device_name': image.get('RootDeviceName'), 'root_device_type': image.get('RootDeviceType'), 'description': image.get('Description'), 'block_device_mappings': image.get('BlockDeviceMappings')}
                item = EC2ImageItem(region=kwargs['region'], account=kwargs['account_name'], name=name, config=dict(item_config))
                item_list.append(item)
        return (item_list, exception_map)
    return slurp_items()
