Example #1
0
 def assert_args(start, end, filter_by, filter_vals, only_active_alarms,
                 sort_dirs):
     if only_active_alarms and (start or end):
         raise VitrageInputError("'only_active_alarms' can't be used "
                                 "with 'start' or 'end' ")
     if end and not start:
         raise VitrageInputError("'end' can't be used without 'start'")
     if (filter_by and not filter_vals) or (filter_vals and not filter_by):
         raise VitrageInputError('Cannot perform filtering, one of '
                                 'filter_by or filter_vals are missing')
     if filter_by and filter_vals and len(filter_by) != len(filter_vals):
         raise VitrageInputError("Cannot perform filtering, len of "
                                 "'filter_by' and 'filter_vals' differs")
     for d in sort_dirs:
         if d not in (ASC, DESC):
             raise VitrageInputError("Unknown sort direction %s" % d)
Example #2
0
    def query(self,
              event_id=None,
              collector_timestamp=None,
              payload=None,
              gt_collector_timestamp=None,
              lt_collector_timestamp=None):
        """Yields a lists of events that match filters.

        :raises: vitrage.common.exception.VitrageInputError.
        :rtype: list of vitrage.storage.sqlalchemy.models.Event
        """

        if (event_id or collector_timestamp or payload) and \
           (gt_collector_timestamp or lt_collector_timestamp):
            msg = "Calling function with both specific event and range of " \
                  "events parameters at the same time "
            LOG.debug(msg)
            raise VitrageInputError(msg)

        query = self.query_filter(models.Event,
                                  event_id=event_id,
                                  collector_timestamp=collector_timestamp,
                                  payload=payload)

        query = self._update_query_gt_lt(gt_collector_timestamp,
                                         lt_collector_timestamp, query)

        return query.order_by(models.Event.collector_timestamp.desc()).all()
Example #3
0
    def delete(self,
               event_id=None,
               collector_timestamp=None,
               gt_collector_timestamp=None,
               lt_collector_timestamp=None):
        """Delete all events that match the filters.

        :raises: vitrage.common.exception.VitrageInputError.
        """
        if (event_id or collector_timestamp) and \
           (gt_collector_timestamp or lt_collector_timestamp):
            msg = "Calling function with both specific event and range of " \
                  "events parameters at the same time "
            LOG.debug(msg)
            raise VitrageInputError(msg)

        query = self.query_filter(models.Event,
                                  event_id=event_id,
                                  collector_timestamp=collector_timestamp)

        query = self._update_query_gt_lt(gt_collector_timestamp,
                                         lt_collector_timestamp, query)

        query.delete()