def makeMfilter(self): cfilter = self.cfilter.make_filter( mfilter=self.mfilter, includes=self.include_ids, excludes=self.exclude_ids, ) query = PBehaviorManager.get_query(behaviors='downtime') entityids = self.pbehavior.whois(query=query) entities = self.context.get_entities(list(entityids)) if entities: downtime = { '$or': [ {DOWNTIME: False}, {DOWNTIME: {'$exists': False}} ] } if '$and' not in cfilter: cfilter = {'$and': [cfilter]} cfilter['$and'].append(downtime) self.logger.debug('Generated cfilter is') return cfilter
def find(entity_ids=None, behaviors=None, start=None, end=None): """Find documents related to input entity id(s) and behavior(s). :param entity_ids: :type entity_ids: list or str :param behaviors: :type behaviors: list or str :param int start: start timestamp. :param int end: end timestamp. :return: entity documents with input behaviors. :rtype: list """ query = PBehaviorManager.get_query(behaviors) entity_ids = ensure_iterable(entity_ids) result = pbm.values( sources=entity_ids, query=query, dtstart=start, dtend=end ) return result
from datetime import datetime, timedelta from icalendar import Event as vEvent ctxmgr = Context() #: default context manager pbmgr = PBehaviorManager() #: default pbehavior manager events = get_storage( namespace='events', account=Account(user='******', group='root') ).get_backend() DOWNTIME = 'downtime' #: downtime pbehavior value DOWNTIME_QUERY = PBehaviorManager.get_query(behaviors=DOWNTIME) @register_task def event_processing( engine, event, context=None, manager=None, logger=None, **kwargs ): """Process input event. :param dict event: event to process. :param Engine engine: engine which consumes the event. :param Context manager: context manager to use. Default is shared ctxmgr. :param PBehaviorManager manager: pbehavior manager to use. Default is pbmgr. :param Logger logger: logger to use in this task. """
def test(self): behaviors = ['test'] result = PBehaviorManager.get_query(behaviors=behaviors) self.assertEqual(result, {PBehaviorManager.BEHAVIORS: behaviors})
def test_empty(self): result = PBehaviorManager.get_query(behaviors=[]) self.assertEqual(result, {PBehaviorManager.BEHAVIORS: []})