示例#1
0
def run(args):
    import openerp
    import openerp.cli.server
    import openerp.tools.config
    import openerp.service.cron
    config = openerp.tools.config

    os.environ["TZ"] = "UTC"
    common.set_addons(args)
    args.database = args.database or []

    config['log_handler'] = [
        ':WARNING', 'openerp.addons.base.ir.ir_cron:DEBUG'
    ]

    openerp.multi_process = True
    common.setproctitle('openerp-cron [%s]' % ', '.join(args.database))

    openerp.cli.server.check_root_user()
    openerp.netsvc.init_logger()
    #openerp.cli.server.report_configuration()
    openerp.cli.server.setup_signal_handlers(openerp.cli.server.signal_handler)
    import openerp.addons.base
    if args.database:
        for db in args.database:
            openerp.cli.server.preload_registry(db)
        openerp.service.cron.start_service()
        openerp.cli.server.quit_on_signals()
    else:
        print "No database given."
示例#2
0
文件: cron.py 项目: bala4901/RPI
def run(args):
    import openerp
    import openerp.cli.server
    import openerp.tools.config
    import openerp.service.cron
    config = openerp.tools.config

    os.environ["TZ"] = "UTC"
    common.set_addons(args)
    args.database = args.database or []

    config['log_handler'] = [':WARNING', 'openerp.addons.base.ir.ir_cron:DEBUG']

    openerp.multi_process = True
    common.setproctitle('openerp-cron [%s]' % ', '.join(args.database))

    openerp.cli.server.check_root_user()
    openerp.netsvc.init_logger()
    #openerp.cli.server.report_configuration()
    openerp.cli.server.configure_babel_localedata_path()
    openerp.cli.server.setup_signal_handlers(openerp.cli.server.signal_handler)
    import openerp.addons.base
    if args.database:
        for db in args.database:
            openerp.cli.server.preload_registry(db)
        openerp.service.cron.start_service()
        openerp.cli.server.quit_on_signals()
    else:
        print "No database given."
示例#3
0
def run(args):
    assert args.database
    assert args.model
    import openerp
    config = openerp.tools.config
    config['log_handler'] = [':CRITICAL']
    common.set_addons(args)
    openerp.netsvc.init_logger()
    registry = openerp.modules.registry.RegistryManager.get(
        args.database, update_module=False)
    model = registry[args.model]
    cr = registry.db.cursor()  # TODO context manager
    field_names = [args.field] if args.field else []
    if args.short:
        # ignore --field
        field_names = ['name']
    try:
        xs = model.read(cr, 1, args.id, field_names, {})
    finally:
        cr.close()

    if xs:
        print "Records (model `%s`, database `%s`):" % (args.model,
                                                        args.database)
        x = xs[0]
        if args.short:
            print str(x['id']) + '.', x['name']
        else:
            longest_k = 1
            for k, v in x.items():
                longest_k = len(k) if longest_k < len(k) else longest_k
            for k, v in sorted(x.items()):
                print(k + ':').ljust(longest_k + 2), v
    else:
        print "Record not found."
示例#4
0
文件: read.py 项目: 0k/openerp-server
def run(args):
    assert args.database
    assert args.model
    import openerp
    config = openerp.tools.config
    config['log_handler'] = [':CRITICAL']
    common.set_addons(args)
    openerp.netsvc.init_logger()
    registry = openerp.modules.registry.RegistryManager.get(
        args.database, update_module=False)
    model = registry[args.model]
    cr = registry.db.cursor() # TODO context manager
    field_names = [args.field] if args.field else []
    if args.short:
        # ignore --field
        field_names = ['name']
    try:
        xs = model.read(cr, 1, args.id, field_names, {})
    finally:
        cr.close()

    if xs:
        print "Records (model `%s`, database `%s`):" % (args.model, args.database)
        x = xs[0]
        if args.short:
            print str(x['id']) + '.', x['name']
        else:
            longest_k = 1
            for k, v in x.items():
                longest_k = len(k) if longest_k < len(k) else longest_k
            for k, v in sorted(x.items()):
                print (k + ':').ljust(longest_k + 2), v
    else:
        print "Record not found."
示例#5
0
def run(args):
    # Note that gevent monkey patching must be done before importing the
    # `threading` module, see http://stackoverflow.com/questions/8774958/.
    if args.gevent:
        import gevent
        import gevent.monkey
        import gevent.wsgi
        import gevent_psycopg2
        gevent.monkey.patch_all()
        gevent_psycopg2.monkey_patch()
    import threading
    import openerp
    import openerp.cli.server
    import openerp.service.wsgi_server
    import openerp.tools.config
    config = openerp.tools.config

    os.environ["TZ"] = "UTC"
    common.set_addons(args)

    openerp.multi_process = True
    common.setproctitle('openerp-web')

    openerp.cli.server.check_root_user()
    openerp.netsvc.init_logger()
    #openerp.cli.server.report_configuration()
    openerp.cli.server.configure_babel_localedata_path()

    target = openerp.service.wsgi_server.serve
    if not args.gevent:
        openerp.evented = False
        openerp.cli.server.setup_signal_handlers(openerp.cli.server.signal_handler)
        # TODO openerp.multi_process with a multi-threaded process probably
        # doesn't work very well (e.g. waiting for all threads to complete
        # before killing the process is not implemented).
        arg = (args.interface, int(args.port), args.threaded)
        threading.Thread(target=target, args=arg).start()
        openerp.cli.server.quit_on_signals()
    else:
        openerp.evented = True

        app = openerp.service.wsgi_server.application
        server = gevent.wsgi.WSGIServer((args.interface, int(args.port)), app)
        setup_signal_handlers(mk_signal_handler(server))
        try:
            server.serve_forever()
        except KeyboardInterrupt:
            try:
                server.stop()
                gevent.shutdown()
            except KeyboardInterrupt:
                sys.stderr.write("Forced shutdown.\n")
                gevent.shutdown()