Esempio n. 1
0
def setup_settings(settings_package, pull_options=True, default_settings='base', final=False):
    from tornado.log import enable_pretty_logging
    from tornado.options import options

    options.define('settings', default=default_settings, help='Define settings module')

    def parse_callback():
        global settings
        settings.load(settings_package, options.settings)

        if pull_options:
            # let's pull options from the settings and vice versa
            for option_name in options:
                src, dst = (settings, options) if option_name in settings else (options, settings)
                setattr(dst, option_name, src[option_name])
            # resets logging configuration
            enable_pretty_logging()

    options.add_parse_callback(callback=parse_callback)

    global settings
    settings.setup_settings = [settings_package, default_settings, final]

    if final:
        options.run_parse_callbacks()
Esempio n. 2
0
def main():
    define("config_dir")
    define("listen", default="0.0.0.0:80", multiple=True)

    if "--help" in sys.argv or "-h" in sys.argv:
        print_help()
        return

    parse_command_line(final=False)

    options.run_parse_callbacks()  # same as final=True

    application = tornado.web.Application(routes,
                                          debug=bool(os.getenv("DEBUG")))
    server = tornado.httpserver.HTTPServer(application)
    for addr in options.listen:
        port = 80
        address = addr
        try:
            address, port = addr.rsplit(':', 1)
            port = int(port)
        except ValueError:
            pass
        server.listen(port, address=address)
    tornado.ioloop.IOLoop.instance().start()
Esempio n. 3
0
def init_app_settings():
    """ 命令行参数优先, 会覆盖配置文件中的参数。
    """
    global _app_settings
    if _app_settings:
        return _app_settings
    # 只为了获取 options.config, 后边会再次调用.
    options.parse_command_line(final=False)
    config_file_path = options.config
    if config_file_path:
        options.parse_config_file(config_file_path, final=False)
    options.parse_command_line(final=False)
    options.run_parse_callbacks()
    _app_settings = options.as_dict()
    return _app_settings
Esempio n. 4
0
def run(args):
    define_global_options()
    options.parse_command_line(['server'] + args, final=False)
    config_file = path.expanduser(options.config)
    if path.isfile(config_file):
        options.parse_config_file(config_file, final=False)
    _set_x_display(options)
    options.run_parse_callbacks()
    try:
        chmod(options.tmp_dir, 0o755)
    except (NotImplementedError, OSError, IOError) as e:
        gen_log.warn('Unable to chmod tmp dir: {}'.format(e))

    if path.isfile(config_file):
        gen_log.info('Config loaded from {}'.format(config_file))
    build_app()
    IOLoop.instance().start()
Esempio n. 5
0
def parse_config_file(path, final=True):

    """Parses and loads the Python config file at the given path.

    This version allow customize new options which are not defined before
    from a configuration file.
    """
    config = {}
    with open(path, 'rb') as f:
        exec_in(native_str(f.read()), {}, config)
    for name in config:
        normalized = options._normalize_name(name)
        if normalized in options._options:
            options._options[normalized].set(config[name])
        else:
            tornado.options.define(name, config[name])
    if final:
        options.run_parse_callbacks()
Esempio n. 6
0
def conf_log():
    define('port',
           default=server_config['port'],
           help='running on the given port',
           type=int)

    options.parse_command_line(final=False)

    # log rotate by time (day), max save 30 files
    options.log_rotate_mode = 'time'
    options.log_file_num_backups = 30
    options.logging = 'debug' if settings['debug'] else 'info'
    options.log_to_stderr = settings['debug']
    options.log_file_prefix = '{}/{}.log'.format(server_config['log_path'],
                                                 options.port)

    options.run_parse_callbacks()

    app_log.info('CMDB Server Listening:{} Started'.format(options.port))
Esempio n. 7
0
def main():
    define("config_dir")
    define("listen", default="0.0.0.0:80", multiple=True)

    if "--help" in sys.argv or "-h" in sys.argv:
        print_help()
        return

    parse_command_line(final=False)

    options.run_parse_callbacks()  # same as final=True

    application = tornado.web.Application(routes, debug=bool(os.getenv("DEBUG")))
    server = tornado.httpserver.HTTPServer(application)
    for addr in options.listen:
        port = 80
        address = addr
        try:
            address, port = addr.rsplit(':', 1)
            port = int(port)
        except ValueError:
            pass
        server.listen(port, address=address)
    tornado.ioloop.IOLoop.instance().start()
Esempio n. 8
0
options.parse_command_line(None, False)
options.log_rotate_mode = 'time'
options.log_rotate_when = 'midnight'
options.log_rotate_interval = 1
options.log_file_num_backups = 30
if options.local_debug:
    logging.getLogger().addHandler(logging.StreamHandler())
    log_dir = root_dir + '/_log'
    if not os.path.exists(log_dir):
        os.mkdir(log_dir)
    options.log_file_prefix = log_dir + '/' + str(options.port) + '.log'
    options.working_dir = root_dir
Assert(options.log_file_prefix, 'Please specify log_file_prefix.')
Assert(options.working_dir, 'Please specify working_dir.')
options.run_parse_callbacks()
os.chdir(options.working_dir)

from tornado.log import LogFormatter
datefmt = '%m-%d %H:%M:%S'
fmt = '%(color)s[%(levelname)1.1s %(asctime)s %(module)s:%(lineno)d]%(end_color)s %(message)s'
formatter = LogFormatter(color=True, datefmt=datefmt, fmt=fmt)
root_log = logging.getLogger()
for logHandler in root_log.handlers:
    logHandler.setFormatter(formatter)

from base.base_application import run
apps = []
if options.local_debug:
    services = get_all_services()
    for i, service in enumerate(services):