Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
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.
    """
Esempio n. 4
0
    def test(self):

        behaviors = ['test']
        result = PBehaviorManager.get_query(behaviors=behaviors)
        self.assertEqual(result, {PBehaviorManager.BEHAVIORS: behaviors})
Esempio n. 5
0
    def test_empty(self):

        result = PBehaviorManager.get_query(behaviors=[])
        self.assertEqual(result, {PBehaviorManager.BEHAVIORS: []})