def main(): """ The entrypoint for the zoe-master script. :return: int """ config.load_configuration() args = config.get_conf() if args.debug: logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT) else: logging.basicConfig(level=logging.INFO, format=LOG_FORMAT) logging.getLogger('kazoo').setLevel(logging.WARNING) logging.getLogger('requests').setLevel(logging.WARNING) logging.getLogger('urllib3').setLevel(logging.WARNING) logging.getLogger('docker').setLevel(logging.INFO) logging.getLogger("tornado").setLevel(logging.DEBUG) log.info("Initializing DB manager") config.singletons['sql_manager'] = SQLManager(args) log.info("Initializing workspace managers") fswk = ZoeFSWorkspace() config.singletons['workspace_managers'] = [fswk] if config.get_conf().influxdb_enable: metrics_th = InfluxDBMetricSender(config.get_conf()) metrics_th.start() config.singletons['metric'] = metrics_th else: metrics_th = BaseMetricSender('metrics-logger', config.get_conf()) config.singletons['metric'] = metrics_th # stats_th = StatsManager() # stats_th.start() # TODO Broken Docker API # config.singletons['stats_manager'] = stats_th log.info("Initializing scheduler") config.scheduler = ZoeScheduler() restart_resubmit_scheduler() log.info("Starting ZMQ API server...") config.singletons['api_server'] = APIManager() try: config.singletons['api_server'].loop() except KeyboardInterrupt: pass except Exception: log.exception('fatal error') finally: config.scheduler.quit() config.singletons['api_server'].quit()
def main(): """ The entrypoint for the zoe-scheduler script. :return: int """ config.load_configuration() args = config.get_conf() if args.debug: logging.basicConfig(level=logging.DEBUG) else: logging.basicConfig(level=logging.INFO) logging.getLogger('kazoo').setLevel(logging.WARNING) logging.getLogger('requests').setLevel(logging.WARNING) logging.getLogger('urllib3').setLevel(logging.WARNING) logging.getLogger('docker').setLevel(logging.INFO) logging.getLogger("tornado").setLevel(logging.DEBUG) logging.getLogger('passlib').setLevel(logging.INFO) log.info("Initializing state") state_manager = StateManager(FSBlobs) state_manager.init() log.info("Initializing platform manager") pm = PlatformManager(FIFOSchedulerPolicy) pm.state_manager = state_manager # try: log.info("Checking state consistency") pm.check_state_swarm_consistency() # except: # log.error('State is seriously corrupted, delete and restart') log.info("Initializing API") app = api_init(state_manager, pm) if config.get_conf().influxdb_enable: metrics_th = InfluxDBMetricSender(config.get_conf()) metrics_th.start() config.singletons['metric'] = metrics_th log.info("Starting HTTP REST server...") app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 http_server = HTTPServer(WSGIContainer(app)) http_server.listen(args.listen_port, args.listen_address) # Initialized like this it is single-threaded/single-process ioloop = IOLoop.instance() try: ioloop.start() except KeyboardInterrupt: if config.singletons['metric'] is not None: config.singletons['metric'].quit() config.singletons['metric'].join() print("CTRL-C detected, terminating")
def main(): """ The entrypoint for the zoe-master script. :return: int """ config.load_configuration() args = config.get_conf() if args.debug: logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT) else: logging.basicConfig(level=logging.INFO, format=LOG_FORMAT) if config.get_conf().influxdb_enable: metrics = InfluxDBMetricSender(config.get_conf().deployment_name, config.get_conf().influxdb_url, config.get_conf().influxdb_dbname) else: metrics = LogMetricSender(config.get_conf().deployment_name) log.info("Initializing DB manager") state = SQLManager(args) log.info("Initializing scheduler") scheduler = ZoeScheduler() monitor = ZoeMonitor(state) checker = ZoeSwarmChecker(state) restart_resubmit_scheduler(state, scheduler) log.info("Starting ZMQ API server...") api_server = APIManager(metrics, scheduler, state) try: api_server.loop() except KeyboardInterrupt: pass except Exception: log.exception('fatal error') finally: scheduler.quit() monitor.quit() checker.quit() api_server.quit() metrics.quit()
def main(): """ The entrypoint for the zoe-master script. :return: int """ config.load_configuration() args = config.get_conf() if args.debug: logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT) else: logging.basicConfig(level=logging.INFO, format=LOG_FORMAT) if config.get_conf().influxdb_enable: metrics = InfluxDBMetricSender(config.get_conf().deployment_name, config.get_conf().influxdb_url, config.get_conf().influxdb_dbname) else: metrics = LogMetricSender(config.get_conf().deployment_name) log.info("Initializing DB manager") state = SQLManager(args) log.info("Initializing scheduler") scheduler = ZoeScheduler() monitor = ZoeMonitor(state) restart_resubmit_scheduler(state, scheduler) log.info("Starting ZMQ API server...") api_server = APIManager(metrics, scheduler, state) try: api_server.loop() except KeyboardInterrupt: pass except Exception: log.exception('fatal error') finally: scheduler.quit() monitor.quit() api_server.quit() metrics.quit()