def add_item_to_push(instance, rule_name):
    """Adds an item to ``ItemToPush`` table aka. push queue"""
    logger.debug('adding %s pk=%s for %s config' % (
        type(instance).__name__,
        instance.pk,
        rule_name
    ))

    from carrier_pigeon.registry import REGISTRY

    try:
        rule = REGISTRY[rule_name]
    except KeyError:
        logger.warning(u'Asked rule "%s" does not exist (instance : %s %d)'
                        % (rule_name, instance.__class__.__name__, instance.pk))
        return

    if duplicate_row(rule_name, instance):
        # The item is already in the queue for this url
        logger.debug('This item is already in the queue... skipping.')
    else:
        for push_url in rule.push_urls:
            row = ItemToPush(rule_name=rule_name,
                             content_object=instance,
                             push_url=push_url)
            row.save()
            logger.debug('Added item in the ItemToPush queue @ %s' %
                         row.pk)
        try:
            model_supervisor = rule.get_supervisor_for_item(instance)
        except:
            pass
        else:
            model_supervisor.post_select(instance)
Example #2
0
def add_item_to_push(instance, rule_name):
    """Adds an item to ``ItemToPush`` table aka. push queue"""
    logger.debug('adding %s pk=%s for %s config' %
                 (type(instance).__name__, instance.pk, rule_name))

    from carrier_pigeon.registry import REGISTRY

    try:
        rule = REGISTRY[rule_name]
    except KeyError:
        logger.warning(u'Asked rule "%s" does not exist (instance : %s %d)' %
                       (rule_name, instance.__class__.__name__, instance.pk))
        return

    if duplicate_row(rule_name, instance):
        # The item is already in the queue for this url
        logger.debug('This item is already in the queue... skipping.')
    else:
        for push_url in rule.push_urls:
            row = ItemToPush(rule_name=rule_name,
                             content_object=instance,
                             push_url=push_url)
            row.save()
            logger.debug('Added item in the ItemToPush queue @ %s' % row.pk)
        try:
            model_supervisor = rule.get_supervisor_for_item(instance)
        except:
            pass
        else:
            model_supervisor.post_select(instance)
Example #3
0
def filter(rule_name, model_supervisor, instance, created):
    """Returns True if the rule model_supervisor validates
    this instance, False otherwise."""

    try:
        validation = model_supervisor.filter_by_instance_type()
    except Exception, e:
        logger.error('error during filter_by_instance_type')
        logger.error(u'catched exception message: %s' % e.message)
        row = ItemToPush(rule_name=rule_name,
                         content_object=instance)
        row.status = ItemToPush.STATUS.FILTER_BY_INSTANCE_TYPE_ERROR
        row.message = "%s: %s" % (e.__class__.__name__, e.message)
        row.save()
        return False
def filter(rule_name, model_supervisor, instance, created):
    """Returns True if the rule model_supervisor validates
    this instance, False otherwise."""

    try:
        validation = model_supervisor.filter_by_instance_type()
    except Exception, e:
        logger.error('error during filter_by_instance_type')
        logger.error(u'catched exception message: %s' % e.message)
        row = ItemToPush(rule_name=rule_name, content_object=instance)
        row.status = ItemToPush.STATUS.FILTER_BY_INSTANCE_TYPE_ERROR
        row.message = "%s: %s" % (e.__class__.__name__, e.message)
        row.save()
        return False
        row.status = ItemToPush.STATUS.FILTER_BY_INSTANCE_TYPE_ERROR
        row.message = "%s: %s" % (e.__class__.__name__, e.message)
        row.save()
        return False
    if not validation:
        logger.debug('Item failed instance filter')
        return False

    if not created:

        try:
            validation = model_supervisor.filter_by_updates()
        except Exception, e:
            logger.error('error during filter_by_updates')
            logger.error(u'catched exception message: %s' % e.message)
            row = ItemToPush(rule_name=rule_name, content_object=instance)
            row.status = ItemToPush.STATUS.FILTER_BY_UPDATES_ERROR
            row.message = "%s: %s" % (e.__class__.__name__, e.message)
            row.save()
            return False

        if not validation:
            logger.debug('Item failed updates filter')
            return False

    try:
        validation = model_supervisor.filter_by_state()
    except Exception, e:
        logger.error('error during filter_by_state')
        logger.error(u'catched exception message: %s' % e.message)
        row = ItemToPush(rule_name=rule_name, content_object=instance)
Example #6
0
        row.status = ItemToPush.STATUS.FILTER_BY_INSTANCE_TYPE_ERROR
        row.message = "%s: %s" % (e.__class__.__name__, e.message)
        row.save()
        return False
    if not validation:
        logger.debug('Item failed instance filter')
        return False

    if not created:

        try:
            validation = model_supervisor.filter_by_updates()
        except Exception, e:
            logger.error('error during filter_by_updates')
            logger.error(u'catched exception message: %s' % e.message)
            row = ItemToPush(rule_name=rule_name,
                             content_object=instance)
            row.status = ItemToPush.STATUS.FILTER_BY_UPDATES_ERROR
            row.message = "%s: %s" % (e.__class__.__name__, e.message)
            row.save()
            return False

        if not validation:
            logger.debug('Item failed updates filter')
            return False

    try:
        validation = model_supervisor.filter_by_state()
    except Exception, e:
        logger.error('error during filter_by_state')
        logger.error(u'catched exception message: %s' % e.message)
        row = ItemToPush(rule_name=rule_name,