def main(): add_common_opts() CONF(project='libra', version=__version__) logging.setup('libra') LOG.debug('Configuration:') CONF.log_opt_values(LOG, std_logging.DEBUG) drivers = [] pc = get_pecan_config() sock = server.make_socket(CONF['admin_api']['host'], CONF['admin_api']['port'], CONF['admin_api']['ssl_keyfile'], CONF['admin_api']['ssl_certfile']) if CONF['daemon']: pidfile = daemon.pidfile.TimeoutPIDLockFile(CONF['admin_api']['pid'], 10) if daemon.runner.is_pidfile_stale(pidfile): pidfile.break_lock() descriptors = get_descriptors() descriptors.append(sock.fileno()) context = daemon.DaemonContext( working_directory='/', umask=0o022, pidfile=pidfile, files_preserve=descriptors ) if CONF['user']: context.uid = pwd.getpwnam(CONF['user']).pw_uid if CONF['group']: context.gid = grp.getgrnam(CONF['group']).gr_gid context.open() try: check_gearman_ssl_files() except Exception as e: LOG.critical(str(e)) return # Use the root logger due to lots of services using logger LOG.info('Starting on %s:%d', CONF.admin_api.host, CONF.admin_api.port) api = setup_app(pc) for driver in CONF['admin_api']['stats_driver']: drivers.append(importutils.import_class(known_drivers[driver])) MaintThreads(drivers) sys.stderr = LogStdout() wsgi.server(sock, api, keepalive=False) return 0
def main(): add_common_opts() CONF(project='libra', version=__version__) logging.setup('libra') LOG.debug('Configuration:') CONF.log_opt_values(LOG, std_logging.DEBUG) drivers = [] pc = get_pecan_config() sock = server.make_socket(CONF['admin_api']['host'], CONF['admin_api']['port'], CONF['admin_api']['ssl_keyfile'], CONF['admin_api']['ssl_certfile']) if CONF['daemon']: pidfile = daemon.pidfile.TimeoutPIDLockFile(CONF['admin_api']['pid'], 10) if daemon.runner.is_pidfile_stale(pidfile): pidfile.break_lock() descriptors = get_descriptors() descriptors.append(sock.fileno()) context = daemon.DaemonContext(working_directory='/', umask=0o022, pidfile=pidfile, files_preserve=descriptors) if CONF['user']: context.uid = pwd.getpwnam(CONF['user']).pw_uid if CONF['group']: context.gid = grp.getgrnam(CONF['group']).gr_gid context.open() try: check_gearman_ssl_files() except Exception as e: LOG.critical(str(e)) return # Use the root logger due to lots of services using logger LOG.info('Starting on %s:%d', CONF.admin_api.host, CONF.admin_api.port) api = setup_app(pc) for driver in CONF['admin_api']['stats_driver']: drivers.append(importutils.import_class(known_drivers[driver])) MaintThreads(drivers) sys.stderr = LogStdout() wsgi.server(sock, api, keepalive=False) return 0
def main(): add_common_opts() CONF(project='libra', version=__version__) logging.setup('libra') LOG.debug('Configuration:') CONF.log_opt_values(LOG, std_logging.DEBUG) pc = get_pecan_config() # NOTE: Let's not force anyone to actually have to use SSL, it shouldn't be # up to us to decide. sock = server.make_socket(CONF['api']['host'], CONF['api']['port'], CONF['api']['ssl_keyfile'], CONF['api']['ssl_certfile']) if CONF['daemon']: pidfile = daemon.pidfile.TimeoutPIDLockFile(CONF['api']['pid'], 10) if daemon.runner.is_pidfile_stale(pidfile): pidfile.break_lock() descriptors = get_descriptors() descriptors.append(sock.fileno()) context = daemon.DaemonContext( working_directory='/', umask=0o022, pidfile=pidfile, files_preserve=descriptors ) if CONF['user']: context.uid = pwd.getpwnam(CONF['user']).pw_uid if CONF['group']: context.gid = grp.getgrnam(CONF['group']).gr_gid context.open() try: check_gearman_ssl_files() except Exception as e: LOG.critical(str(e)) return LOG.info('Starting on %s:%d', CONF.api.host, CONF.api.port) api = setup_app(pc) sys.stderr = LogStdout() wsgi.server(sock, api, keepalive=False, debug=CONF['debug']) return 0
def main(): add_common_opts() CONF(project='libra', version=__version__) logging.setup('libra') LOG.debug('Configuration:') CONF.log_opt_values(LOG, std_logging.DEBUG) pc = get_pecan_config() # NOTE: Let's not force anyone to actually have to use SSL, it shouldn't be # up to us to decide. sock = server.make_socket(CONF['api']['host'], CONF['api']['port'], CONF['api']['ssl_keyfile'], CONF['api']['ssl_certfile']) if CONF['daemon']: pidfile = daemon.pidfile.TimeoutPIDLockFile(CONF['api']['pid'], 10) if daemon.runner.is_pidfile_stale(pidfile): pidfile.break_lock() descriptors = get_descriptors() descriptors.append(sock.fileno()) context = daemon.DaemonContext(working_directory='/', umask=0o022, pidfile=pidfile, files_preserve=descriptors) if CONF['user']: context.uid = pwd.getpwnam(CONF['user']).pw_uid if CONF['group']: context.gid = grp.getgrnam(CONF['group']).gr_gid context.open() try: check_gearman_ssl_files() except Exception as e: LOG.critical(str(e)) return LOG.info('Starting on %s:%d', CONF.api.host, CONF.api.port) api = setup_app(pc) sys.stderr = LogStdout() wsgi.server(sock, api, keepalive=False, debug=CONF['debug']) return 0
def main(self): try: check_gearman_ssl_files() except Exception as e: LOG.critical(str(e)) return LOG.info( 'Libra Pool Manager worker started, spawning {0} threads'.format( CONF['mgm']['threads'])) thread_list = [] for x in xrange(0, CONF['mgm']['threads']): thd = threading.Thread(target=worker_thread, args=[]) thd.daemon = True thread_list.append(thd) thd.start() for thd in thread_list: thd.join()
def main(self): try: check_gearman_ssl_files() except Exception as e: LOG.critical(str(e)) return LOG.info( 'Libra Pool Manager worker started, spawning {0} threads' .format(CONF['mgm']['threads']) ) thread_list = [] for x in xrange(0, CONF['mgm']['threads']): thd = threading.Thread( target=worker_thread, args=[] ) thd.daemon = True thread_list.append(thd) thd.start() for thd in thread_list: thd.join()
def main(self, tasks): """ Main method of the server. tasks A tuple with two items: a function name, and a tuple with that function's arguments. """ try: check_gearman_ssl_files() except Exception as e: LOG.critical(str(e)) return thread_list = [] driver = CONF['worker']['driver'] LOG.info("Selected driver: %s" % driver) if driver == 'haproxy': LOG.info("Selected HAProxy service: %s" % CONF['worker:haproxy']['service']) LOG.info("Job server list: %s" % CONF['gearman']['servers']) for task, task_args in tasks: thd = threading.Thread(target=task, args=task_args) thd.daemon = True thread_list.append(thd) thd.start() while True: try: time.sleep(600) except KeyboardInterrupt: LOG.info("Non-daemon session terminated") break LOG.info("Shutting down")