Beispiel #1
0
 def __init__(self):
     self._timers = TimersHolder()
     self._trigger_types = TIMER_TRIGGER_TYPES.keys()
     queue_suffix = self.__class__.__name__
     self._trigger_watcher = TriggerWatcher(create_handler=self._handle_create_trigger,
                                            update_handler=self._handle_update_trigger,
                                            delete_handler=self._handle_delete_trigger,
                                            trigger_types=self._trigger_types,
                                            queue_suffix=queue_suffix,
                                            exclusive=True)
     self._trigger_watcher.start()
     self._register_timer_trigger_types()
     self._allowed_timer_types = TIMER_TRIGGER_TYPES.keys()
Beispiel #2
0
 def __init__(self):
     self._timers = TimersHolder()
     self._trigger_types = TIMER_TRIGGER_TYPES.keys()
     queue_suffix = self.__class__.__name__
     self._trigger_watcher = TriggerWatcher(create_handler=self._handle_create_trigger,
                                            update_handler=self._handle_update_trigger,
                                            delete_handler=self._handle_delete_trigger,
                                            trigger_types=self._trigger_types,
                                            queue_suffix=queue_suffix,
                                            exclusive=True)
     self._trigger_watcher.start()
     self._register_timer_trigger_types()
     self._allowed_timer_types = TIMER_TRIGGER_TYPES.keys()
Beispiel #3
0
    def test_existing_rules_are_loaded_on_start(self):
        # Assert that we dispatch message for every existing Trigger object
        St2Timer._handle_create_trigger = mock.Mock()

        timer = St2Timer()
        timer._scheduler = mock.Mock()
        timer._trigger_watcher.run = mock.Mock()

        # Verify there are no Trigger and TriggerType in the db wh:w
        self.assertItemsEqual(Trigger.get_all(), [])
        self.assertItemsEqual(TriggerType.get_all(), [])

        # Add a dummy timer Trigger object
        type_ = TIMER_TRIGGER_TYPES.keys()[0]
        parameters = {'unit': 'seconds', 'delta': 1000}
        trigger_db = TriggerDB(id=bson.ObjectId(), name='test_trigger_1', pack='dummy',
                               type=type_, parameters=parameters)
        trigger_db = Trigger.add_or_update(trigger_db)

        # Verify object has been added
        self.assertEqual(len(Trigger.get_all()), 1)

        timer.start()
        timer._trigger_watcher._load_thread.wait()

        # Verify handlers are called
        timer._handle_create_trigger.assert_called_with(trigger_db)
Beispiel #4
0
    def test_existing_rules_are_loaded_on_start(self):
        # Assert that we dispatch message for every existing Trigger object
        St2Timer._handle_create_trigger = mock.Mock()

        timer = St2Timer()
        timer._scheduler = mock.Mock()
        timer._trigger_watcher.run = mock.Mock()

        # Verify there are no Trigger and TriggerType in the db wh:w
        self.assertItemsEqual(Trigger.get_all(), [])
        self.assertItemsEqual(TriggerType.get_all(), [])

        # Add a dummy timer Trigger object
        type_ = list(TIMER_TRIGGER_TYPES.keys())[0]
        parameters = {'unit': 'seconds', 'delta': 1000}
        trigger_db = TriggerDB(id=bson.ObjectId(),
                               name='test_trigger_1',
                               pack='dummy',
                               type=type_,
                               parameters=parameters)
        trigger_db = Trigger.add_or_update(trigger_db)

        # Verify object has been added
        self.assertEqual(len(Trigger.get_all()), 1)

        timer.start()
        timer._trigger_watcher._load_thread.wait()

        # Verify handlers are called
        timer._handle_create_trigger.assert_called_with(trigger_db)
Beispiel #5
0
 def __init__(self, local_timezone=None):
     self._timezone = local_timezone
     self._scheduler = BlockingScheduler(timezone=self._timezone)
     self._jobs = {}
     self._trigger_types = TIMER_TRIGGER_TYPES.keys()
     self._trigger_watcher = TriggerWatcher(create_handler=self._handle_create_trigger,
                                            update_handler=self._handle_update_trigger,
                                            delete_handler=self._handle_delete_trigger,
                                            trigger_types=self._trigger_types,
                                            queue_suffix='timers')
     self._trigger_dispatcher = TriggerDispatcher(LOG)
Beispiel #6
0
 def __init__(self, local_timezone=None):
     self._timezone = local_timezone
     self._scheduler = BlockingScheduler(timezone=self._timezone)
     self._jobs = {}
     self._trigger_types = TIMER_TRIGGER_TYPES.keys()
     self._trigger_watcher = TriggerWatcher(create_handler=self._handle_create_trigger,
                                            update_handler=self._handle_update_trigger,
                                            delete_handler=self._handle_delete_trigger,
                                            trigger_types=self._trigger_types,
                                            queue_suffix=self.__class__.__name__,
                                            exclusive=True)
     self._trigger_dispatcher = TriggerDispatcher(LOG)
Beispiel #7
0
 def __init__(self, local_timezone=None):
     self._timezone = local_timezone
     self._scheduler = BlockingScheduler(timezone=self._timezone)
     self._jobs = {}
     self._trigger_types = list(TIMER_TRIGGER_TYPES.keys())
     self._trigger_watcher = TriggerWatcher(create_handler=self._handle_create_trigger,
                                            update_handler=self._handle_update_trigger,
                                            delete_handler=self._handle_delete_trigger,
                                            trigger_types=self._trigger_types,
                                            queue_suffix=self.__class__.__name__,
                                            exclusive=True)
     self._trigger_dispatcher = TriggerDispatcher(LOG)
Beispiel #8
0
    def test_timer_trace_tag_creation(self, dispatch_mock):
        timer = St2Timer()
        timer._scheduler = mock.Mock()
        timer._trigger_watcher = mock.Mock()

        # Add a dummy timer Trigger object
        type_ = TIMER_TRIGGER_TYPES.keys()[0]
        parameters = {'unit': 'seconds', 'delta': 1}
        trigger_db = TriggerDB(name='test_trigger_1', pack='dummy', type=type_,
                               parameters=parameters)
        timer.add_trigger(trigger_db)
        timer._emit_trigger_instance(trigger=trigger_db)

        self.assertEqual(dispatch_mock.call_args[1]['trace_context'].trace_tag,
                         '%s-%s' % (TIMER_TRIGGER_TYPES[type_]['name'], trigger_db.name))
Beispiel #9
0
    def test_timer_trace_tag_creation(self, dispatch_mock):
        timer = St2Timer()
        timer._scheduler = mock.Mock()
        timer._trigger_watcher = mock.Mock()

        # Add a dummy timer Trigger object
        type_ = list(TIMER_TRIGGER_TYPES.keys())[0]
        parameters = {'unit': 'seconds', 'delta': 1}
        trigger_db = TriggerDB(name='test_trigger_1',
                               pack='dummy',
                               type=type_,
                               parameters=parameters)
        timer.add_trigger(trigger_db)
        timer._emit_trigger_instance(trigger=trigger_db.to_serializable_dict())

        self.assertEqual(
            dispatch_mock.call_args[1]['trace_context'].trace_tag,
            '%s-%s' % (TIMER_TRIGGER_TYPES[type_]['name'], trigger_db.name))
Beispiel #10
0
    def test_trigger_types_are_registered_on_start(self):
        timer = St2Timer()
        timer._scheduler = Mock()

        # Verify there are no TriggerType in the db when we start
        self.assertItemsEqual(TriggerType.get_all(), [])

        timer.start()

        # Verify TriggerType objects have been created
        trigger_type_dbs = TriggerType.get_all()
        self.assertEqual(len(trigger_type_dbs), len(TIMER_TRIGGER_TYPES))

        timer_trigger_type_refs = TIMER_TRIGGER_TYPES.keys()

        for trigger_type in trigger_type_dbs:
            ref = ResourceReference(pack=trigger_type.pack, name=trigger_type.name).ref
            self.assertTrue(ref in timer_trigger_type_refs)
Beispiel #11
0
    def test_trigger_types_are_registered_on_start(self):
        timer = St2Timer()
        timer._scheduler = mock.Mock()

        # Verify there are no TriggerType in the db when we start
        self.assertItemsEqual(TriggerType.get_all(), [])

        timer.start()

        # Verify TriggerType objects have been created
        trigger_type_dbs = TriggerType.get_all()
        self.assertEqual(len(trigger_type_dbs), len(TIMER_TRIGGER_TYPES))

        timer_trigger_type_refs = TIMER_TRIGGER_TYPES.keys()

        for trigger_type in trigger_type_dbs:
            ref = ResourceReference(pack=trigger_type.pack, name=trigger_type.name).ref
            self.assertTrue(ref in timer_trigger_type_refs)
Beispiel #12
0
    def test_timer_trace_tag_creation(self, dispatch_mock):
        timer = St2Timer()
        timer._scheduler = mock.Mock()
        timer._trigger_watcher = mock.Mock()

        # Add a dummy timer Trigger object
        type_ = list(TIMER_TRIGGER_TYPES.keys())[0]
        parameters = {"unit": "seconds", "delta": 1}
        trigger_db = TriggerDB(name="test_trigger_1",
                               pack="dummy",
                               type=type_,
                               parameters=parameters)
        timer.add_trigger(trigger_db)
        timer._emit_trigger_instance(trigger=trigger_db.to_serializable_dict())

        self.assertEqual(
            dispatch_mock.call_args[1]["trace_context"].trace_tag,
            "%s-%s" % (TIMER_TRIGGER_TYPES[type_]["name"], trigger_db.name),
        )
Beispiel #13
0
Datei: base.py Projekt: timff/st2
 def _register_timer_trigger_types(self):
     return container_utils.add_trigger_models(TIMER_TRIGGER_TYPES.values())
Beispiel #14
0
 def _register_timer_trigger_types(self):
     return trigger_services.add_trigger_models(
         list(TIMER_TRIGGER_TYPES.values()))
Beispiel #15
0
 def _register_timer_trigger_types(self):
     for trigger_type in TIMER_TRIGGER_TYPES.values():
         trigger_service.create_trigger_type_db(trigger_type)
Beispiel #16
0
 def _register_timer_trigger_types(self):
     return container_utils.add_trigger_models(TIMER_TRIGGER_TYPES.values())
Beispiel #17
0
 def _register_timer_trigger_types(self):
     for trigger_type in TIMER_TRIGGER_TYPES.values():
         trigger_service.create_trigger_type_db(trigger_type)
Beispiel #18
0
Datei: base.py Projekt: hejin/st2
 def _register_timer_trigger_types(self):
     return trigger_services.add_trigger_models(TIMER_TRIGGER_TYPES.values())