Esempio n. 1
0
    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)
Esempio n. 2
0
    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)