summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2011-07-09 18:12:00 +0200
committerAntony Lesuisse <al@openerp.com>2011-07-09 18:12:00 +0200
commit73f0f3f5d87f7be3f0cb2505dc7f42cc97899fc4 (patch)
tree725742543012fefc7652729fb3bc6deb4f49363b
parent5d2dc020aca1b763b76b291ec965144ad5041d75 (diff)
configurable server (host, port)
bzr revid: al@openerp.com-20110709161200-pbgam641ce4uzazh
-rw-r--r--openerpweb/openerpweb.py45
1 files changed, 22 insertions, 23 deletions
diff --git a/openerpweb/openerpweb.py b/openerpweb/openerpweb.py
index 33c5c14edb3..13864d3e026 100644
--- a/openerpweb/openerpweb.py
+++ b/openerpweb/openerpweb.py
@@ -74,8 +74,7 @@ class OpenERPSession(object):
Used to store references to non-literal domains which need to be
round-tripped to the client browser.
"""
- def __init__(self, server='127.0.0.1', port=8069,
- model_factory=OpenERPModel):
+ def __init__(self, server='127.0.0.1', port=8069, model_factory=OpenERPModel):
self._server = server
self._port = port
self._db = False
@@ -234,11 +233,7 @@ class OpenERPSession(object):
# OpenERP Web RequestHandler
#----------------------------------------------------------
class JsonRequest(object):
- """ JSON-RPC2 over HTTP POST using non standard POST encoding.
- Difference with the standard:
-
- * the json string is passed as a form parameter named "request"
- * method is currently ignored
+ """ JSON-RPC2 over HTTP.
Sucessful request::
@@ -278,7 +273,9 @@ class JsonRequest(object):
self.httpsession_id = "cookieid"
self.httpsession = cherrypy.session
self.session_id = self.params.pop("session_id", None) or uuid.uuid4().hex
- self.session = self.httpsession.setdefault(self.session_id, OpenERPSession())
+ host = cherrypy.config['openerp.server.host']
+ port = cherrypy.config['openerp.server.port']
+ self.session = self.httpsession.setdefault(self.session_id, OpenERPSession(host, port))
self.context = self.params.pop('context', None)
return self.params
@@ -369,7 +366,9 @@ class HttpRequest(object):
self.httpsession_id = "cookieid"
self.httpsession = cherrypy.session
self.context = kw.get('context', {})
- self.session = self.httpsession.setdefault(kw.get('session_id', None), OpenERPSession())
+ host = cherrypy.config['openerp.server.host']
+ port = cherrypy.config['openerp.server.port']
+ self.session = self.httpsession.setdefault(kw.get('session_id', None), OpenERPSession(host, port))
self.result = ""
if request.method == 'GET':
print "GET --> %s.%s %s %r" % (controller.__class__.__name__, f.__name__, request, kw)
@@ -454,8 +453,10 @@ class Root(object):
def main(argv):
# change the timezone of the program to the OpenERP server's assumed timezone
os.environ["TZ"] = "UTC"
-
+
DEFAULT_CONFIG = {
+ 'openerp.server.host': '127.0.0.1',
+ 'openerp.server.port': 8069,
'server.socket_port': 8002,
'server.socket_host': '0.0.0.0',
'tools.sessions.on': True,
@@ -463,13 +464,13 @@ def main(argv):
'tools.sessions.storage_path': os.path.join(tempfile.gettempdir(), "cpsessions"),
'tools.sessions.timeout': 60
}
-
+
# Parse config
op = optparse.OptionParser()
- op.add_option("-p", "--port", dest="server.socket_port", help="listening port",
- type="int", metavar="NUMBER")
- op.add_option("-s", "--session-path", dest="tools.sessions.storage_path",
- help="directory used for session storage", metavar="DIR")
+ op.add_option("-p", "--port", dest="server.socket_port", help="listening port", type="int", metavar="NUMBER")
+ op.add_option("-s", "--session-path", dest="tools.sessions.storage_path", help="directory used for session storage", metavar="DIR")
+ op.add_option("", "--server-host", dest="openerp.server.host", help="OpenERP server hostname", metavar="HOST")
+ op.add_option("", "--server-port", dest="openerp.server.port", help="OpenERP server port", type="int", metavar="NUMBER")
(o, args) = op.parse_args(argv[1:])
o = vars(o)
for k in o.keys():
@@ -478,19 +479,17 @@ def main(argv):
# Setup and run cherrypy
cherrypy.tree.mount(Root())
-
+
cherrypy.config.update(config=DEFAULT_CONFIG)
- if os.path.exists(os.path.join(os.path.dirname(
- os.path.dirname(__file__)),'openerp-web.cfg')):
- cherrypy.config.update(os.path.join(os.path.dirname(
- os.path.dirname(__file__)),'openerp-web.cfg'))
+ if os.path.exists(os.path.join(os.path.dirname( os.path.dirname(__file__)),'openerp-web.cfg')):
+ cherrypy.config.update(os.path.join(os.path.dirname( os.path.dirname(__file__)),'openerp-web.cfg'))
if os.path.exists(os.path.expanduser('~/.openerp_webrc')):
cherrypy.config.update(os.path.expanduser('~/.openerp_webrc'))
cherrypy.config.update(o)
-
+
if not os.path.exists(cherrypy.config['tools.sessions.storage_path']):
- os.mkdir(cherrypy.config['tools.sessions.storage_path'], 0700)
-
+ os.makedirs(cherrypy.config['tools.sessions.storage_path'], 0700)
+
cherrypy.server.subscribe()
cherrypy.engine.start()
cherrypy.engine.block()