summaryrefslogtreecommitdiff
path: root/openerpcommand
diff options
context:
space:
mode:
authorVo Minh Thu <vmt@openerp.com>2013-01-11 16:31:13 +0100
committerVo Minh Thu <vmt@openerp.com>2013-01-11 16:31:13 +0100
commit8119d8920074dfc05a8bc9e256019a7b79c83d97 (patch)
treeca1ef9b6a11da6101a6967e5c6769370a38bcb7c /openerpcommand
parent3da57500c279cd19fa6d561eef149d708383138d (diff)
[ADD] oe web: run an OpenERP web process.
bzr revid: vmt@openerp.com-20130111153113-ue2ybx33e2gh99sx
Diffstat (limited to 'openerpcommand')
-rw-r--r--openerpcommand/__init__.py3
-rw-r--r--openerpcommand/web.py56
2 files changed, 58 insertions, 1 deletions
diff --git a/openerpcommand/__init__.py b/openerpcommand/__init__.py
index 53d456c7639..5a243ded229 100644
--- a/openerpcommand/__init__.py
+++ b/openerpcommand/__init__.py
@@ -17,9 +17,10 @@ from . import run_tests
from . import scaffold
from . import uninstall
from . import update
+from . import web
command_list_server = (conf, drop, initialize, model, module, read, run_tests,
- scaffold, uninstall, update, )
+ scaffold, uninstall, update, web, )
command_list_client = (Call, Open, Show, ConsumeNothing, ConsumeMemory,
LeakMemory, ConsumeCPU, Bench, BenchRead,
diff --git a/openerpcommand/web.py b/openerpcommand/web.py
new file mode 100644
index 00000000000..632aa482646
--- /dev/null
+++ b/openerpcommand/web.py
@@ -0,0 +1,56 @@
+"""
+Run a normal OpenERP HTTP process.
+"""
+
+import logging
+import os
+import threading
+
+import openerp.cli.server
+import openerp.service.wsgi_server
+import openerp.tools.config
+
+import common
+
+_logger = logging.getLogger(__name__)
+
+def run(args):
+ os.environ["TZ"] = "UTC"
+
+ if args.addons:
+ args.addons = args.addons.split(':')
+ else:
+ args.addons = []
+
+ config = openerp.tools.config
+ config['addons_path'] = ','.join(args.addons)
+
+ 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()
+
+ target = openerp.service.wsgi_server.serve
+ if not args.gevent:
+ arg = (args.interface, int(args.port), args.threaded)
+ threading.Thread(target=target, args=arg).start()
+ openerp.cli.server.quit_on_signals()
+ else:
+ print "The --gevent option is not yet implemented."
+
+def add_parser(subparsers):
+ parser = subparsers.add_parser('web',
+ description='Run a normal OpenERP HTTP process. By default a '
+ 'singly-threaded Werkzeug server is used.')
+ common.add_addons_argument(parser)
+ parser.add_argument('--interface', default='0.0.0.0',
+ help='HTTP interface to listen on (default is %(default)s)')
+ parser.add_argument('--port', metavar='INT', default=8069,
+ help='HTTP port to listen on (default is %(default)s)')
+ parser.add_argument('--threaded', action='store_true',
+ help='Use a multithreaded Werkzeug server (incompatible with --gevent)')
+ parser.add_argument('--gevent', action='store_true',
+ help="Use gevent's WSGI server (incompatible with --threaded)")
+
+ parser.set_defaults(run=run)