def setup(self): try: self.setup_basic_logging() self.setup_signals() self.setup_environment_variables() self.read_configuration() self.setup_logging() self.parse_args() self.setup_default_loglevel() self.logger.info('Starting EVA: the EVent Adapter.') self.print_environment('Global configuration: ') self.setup_client_group_id() self.setup_health_check_server() self.setup_statsd_client() self.setup_zookeeper() self.setup_productstatus() self.setup_listeners() self.setup_executor() self.setup_adapter() except eva.exceptions.EvaException as e: self.logger.critical(str(e)) self.logger.info('Shutting down EVA due to missing or invalid configuration.') sys.exit(1) except Exception as e: eva.print_exception_as_bug(e, self.logger) self.logger.critical('EVA initialization failed. Your code is broken, please fix it.') sys.exit(255)
def start(self): try: evaloop = eva.eventloop.Eventloop(self.productstatus_api, self.listeners, self.adapter, self.executor, self.statsd_client, self.zookeeper, self.environment_variables, self.health_check_server, self.logger, ) if self.args.process_all_in_product_instance or self.args.process_data_instance: if self.args.process_all_in_product_instance: product_instance = self.productstatus_api.productinstance[self.args.process_all_in_product_instance] evaloop.process_all_in_product_instance(product_instance) elif self.args.process_data_instance: evaloop.process_data_instance(self.args.process_data_instance) evaloop.sort_queue() while evaloop.process_all_events_once(): continue else: evaloop() except eva.exceptions.ShutdownException as e: self.logger.info(str(e)) except kazoo.exceptions.ConnectionLoss as e: self.logger.critical('Shutting down EVA due to ZooKeeper connection loss: %s', str(e)) self.statsd.incr('zookeeper_connection_loss') except Exception as e: eva.print_exception_as_bug(e, self.logger) sys.exit(255) if self.zookeeper: self.logger.info('Stopping ZooKeeper.') self.zookeeper.stop() self.logger.info('Shutting down EVA.')