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)
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)
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
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) row.status = ItemToPush.STATUS.FILTER_BY_STATE_ERROR row.message = "%s: %s" % (e.__class__.__name__, e.message) row.save()
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) row.status = ItemToPush.STATUS.FILTER_BY_STATE_ERROR row.message = "%s: %s" % (e.__class__.__name__, e.message)