def _load_handlers(self, handler_config_path, **kwargs): base_path = os.path.expanduser(handler_config_path) conf_files = glob.glob(os.path.join(base_path, '*.conf')) logger.debug("Loading handlers from %s", handler_config_path) for f in conf_files: handler_name = os.path.basename(f)[:-5] # We could eventually have the handlers get loaded everytime and # update them if their config has changed (via config_version # below). For now lets not get that tricky. if handler_name in self._handlers: if not kwargs.get('force_load_handlers', False): logger.debug("Handler %s already loaded, skipping.", handler_name) continue conf_version, conf = yaml_config.load_config(f) enabled = conf.pop('enabled', False) if not enabled: logger.debug("Handler %s 'enabled' is not set to true. " "Skipping.", handler_name) continue cls_string = conf.pop('handler_class') logger.debug('Initializing handler %s.', handler_name) try: handler_cls = load_object_from_string(cls_string) self._handlers[handler_name] = handler_cls(conf) except Exception as e: logutil.log_exception("Skipping handler %s due to " "unhandled exception:" % (handler_name), logger) continue if not self._handlers: logger.error("No handlers loaded. Exiting.") sys.exit(1)
def handle_result(self, result, **kwargs): previous_state = self.get_state(result.id) for handler_name, handler in self._handlers.iteritems(): try: handler._process(result, previous_state) except Exception: logutil.log_exception("Unhandled %s handler " "exception:" % (handler_name,), logger) continue try: self.save_state(result.id, result, previous_state) except OutOfDateState: pass
def _load_handler(self, handler_name, config, **kwargs): enabled = config.pop('enabled', False) if not enabled: logger.debug("Handler %s 'enabled' is not set to true. " "Skipping.", handler_name) return None cls_string = config.pop('handler_class') logger.debug('Initializing handler %s.', handler_name) try: handler_cls = load_object_from_string(cls_string) return handler_cls(config) except Exception as e: logutil.log_exception("Skipping handler %s due to " "unhandled exception:" % (handler_name), logger) return None
def handle_result(self, result, **kwargs): previous_state = self.get_state(result.id) for handler_name, handler in self.handlers.iteritems(): try: # We do suppression AFTER filters, so we have to # pass Reactor to the handler to do that for us handler.process(result, previous_state, self.is_suppressed) except Exception: logutil.log_exception("Unhandled %s handler " "exception:" % (handler_name,), logger) continue try: self.save_state(result.id, result, previous_state) except OutOfDateState: pass
def handle_result(self, result, **kwargs): previous_state = self.get_state(result.id) for handler_name, handler in self.handlers.iteritems(): try: # We do suppression AFTER filters, so we have to # pass Reactor to the handler to do that for us handler.process(result, previous_state, self.is_suppressed) except Exception: logutil.log_exception( "Unhandled %s handler " "exception:" % (handler_name, ), logger) continue try: self.save_state(result.id, result, previous_state) except OutOfDateState: pass
def load_handler(self, handler_name, config, **kwargs): enabled = config.pop('enabled', False) if not enabled: logger.debug( "Handler %s 'enabled' is not set to true. " "Skipping.", handler_name) return None cls_string = config.pop('handler_class') logger.debug('Initializing handler %s.', handler_name) try: handler_cls = load_object_from_string(cls_string) return handler_cls(config) except Exception: logutil.log_exception( "Skipping handler %s due to " "unhandled exception:" % handler_name, logger) return None