summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-09-26 12:09:00 +0200
committerSimon Lejeune <sle@openerp.com>2016-09-30 12:05:49 +0200
commit467a958ab0a4bcee03b9d4e611a65a945916b189 (patch)
tree4f475e1a38bd7d5f081dfc5b4b681884c1835a8a
parent630b4b1d556b84649cf7b9bfe7a170114d918a36 (diff)
[FIX] core: handle gevent on command line correctly
-rw-r--r--odoo/__init__.py7
-rw-r--r--odoo/cli/command.py2
-rw-r--r--odoo/service/server.py5
-rwxr-xr-xsetup/setup_dev.py9
4 files changed, 11 insertions, 12 deletions
diff --git a/odoo/__init__.py b/odoo/__init__.py
index 03a2dd5e9e1..a16b371ebe7 100644
--- a/odoo/__init__.py
+++ b/odoo/__init__.py
@@ -9,7 +9,12 @@
# Is the server running with gevent.
import sys
evented = False
-if sys.modules.get("gevent") is not None:
+if len(sys.argv) > 1 and sys.argv[1] == 'gevent':
+ sys.argv.remove('gevent')
+ import gevent.monkey
+ gevent.monkey.patch_all()
+ import psycogreen.gevent
+ psycogreen.gevent.patch_psycopg()
evented = True
# Is the server running in prefork mode (e.g. behind Gunicorn).
diff --git a/odoo/cli/command.py b/odoo/cli/command.py
index fa22fd5baf1..75aa392fdfb 100644
--- a/odoo/cli/command.py
+++ b/odoo/cli/command.py
@@ -62,3 +62,5 @@ def main():
if command in commands:
o = commands[command]()
o.run(args)
+ else:
+ sys.exit('Unknow command %r' % (command,))
diff --git a/odoo/service/server.py b/odoo/service/server.py
index 3d181396a6f..b44640edbd6 100644
--- a/odoo/service/server.py
+++ b/odoo/service/server.py
@@ -443,9 +443,8 @@ class PreforkServer(CommonServer):
def long_polling_spawn(self):
nargs = stripped_sys_argv()
- cmd = os.path.join(os.path.dirname(nargs[0]), "odoo.py")
- nargs = [cmd, 'gevent'] + nargs[1:]
- popen = subprocess.Popen([sys.executable] + nargs)
+ cmd = [sys.executable, sys.argv[0], 'gevent'] + nargs[1:]
+ popen = subprocess.Popen(cmd)
self.long_polling_pid = popen.pid
def worker_pop(self, pid):
diff --git a/setup/setup_dev.py b/setup/setup_dev.py
index dfea4b67d74..5ddac8b1a6f 100755
--- a/setup/setup_dev.py
+++ b/setup/setup_dev.py
@@ -153,14 +153,7 @@ def main():
elif len(sys.argv) == 2 and sys.argv[1] in cmds:
cmds[sys.argv[1]]()
else:
- if len(sys.argv) > 1 and sys.argv[1] == 'gevent':
- sys.argv.remove('gevent')
- import gevent.monkey
- gevent.monkey.patch_all()
- import psycogreen.gevent
- psycogreen.gevent.patch_psycopg()
- import odoo
- odoo.cli.main()
+ sys.exit('Unknow command. Command available: %r' % (cmds.keys(),))
if __name__ == "__main__":
main()