def start_thread(event: Event): event_type = event.get_type() # start new threads if "cmdb.exportd.run_manual" == event_type: new_thread = ExportdThread(event=event, state=True) new_thread.start() elif "cmdb.core.object" in event_type: new_thread = ExportdThread(event=event, state=False) new_thread.start() elif "cmdb.exportd" in event_type: new_thread = ExportdThread(event=event, state=event.get_param("active") in ['true', True]) new_thread.start()
def handler(self, event: Event): # get type of Event event_type = event.get_type() # get public_id from Event event_param_id = event.get_param("id") # Remove duplicate entries in the Queue of upcoming events for q in scheduler.queue: arg = q.argument[0] if "cmdb.core.object" in event_type and event_param_id == arg.get_param( "id"): scheduler.cancel(q) elif "cmdb.exportd" in event_type and event_param_id == arg.get_param( "id"): scheduler.cancel(q) if event.get_param("active"): scheduler.enter(10, 1, self.start_thread, argument=(event, )) elif "cmdb.exportd.deleted" != event_type: scheduler.enter(5, 1, self.start_thread, argument=(event, ))
def _handle_event(self, event: Event): LOGGER.debug("event received: {}".format(event.get_type())) self.handler(event)