baselog.addHandler(ch) log_file = os.path.join(config['logging_dir'], 'web') rfh = logging.handlers.TimedRotatingFileHandler(log_file, 'midnight') rfh.setLevel(logging.INFO) rfh.setFormatter(format) baselog.addHandler(rfh) try: servers_dao = database.ServersDAO(config['database']) sensors_dao = database.SensorsDAO(config['database']) except Exception: baselog.exception("Cannot connect to the database") sys.exit(1) labmaker = lambda: construct_lab.run(config['num_racks'], servers_dao, sensors_dao) try: red = redis.StrictRedis(**config['redis']) except Exception: baselog.exception("Cannot connect to the Redis server") sys.exit(1) lm = LabMonitor() lm.sensors_dao = sensors_dao lm.servers_dao = servers_dao lm.set_labmaker(labmaker) lm.set_redis(red) lm.set_frontend(frontend.app) lm.start(debug=True)
red.set('lab_monitor.monitor_pid', procutils.getpid()) try: servers_dao = database.ServersDAO(config['database']) sensors_dao = database.SensorsDAO(config['database']) except Exception: baselog.exception("Cannot connect to the database") sys.exit(1) monitor_opts = {} monitor_opts['delay'] = config['alarm_delay'] monitor_opts['shutdown_timeout'] = config['shutdown_timeout'] monitor_opts['temperature'] = config['temperature'] try: monitor_opts['engine'] = notifications.Hangouts(**config['xmpp']) baselog.info("Created a notification engine") except Exception: baselog.exception("Cannot connect to the XMPP server") sys.exit(1) try: lab = construct_lab.run(config['num_racks'], servers_dao, sensors_dao, True, monitor_opts) except Exception: baselog.exception("Cannot construct the lab") sys.exit(1) mon = Monitor() mon.state_updater = stateupd mon.start(lab)