Removed spurious static_path.
[smonitor.git] / monitor / cherrypy / _cpwsgi_server.py
blob49fd5a195efa284c1a971319243c138a9a9828c5
1 """WSGI server interface (see PEP 333). This adds some CP-specific bits to
2 the framework-agnostic wsgiserver package.
3 """
4 import sys
6 import cherrypy
7 from cherrypy import wsgiserver
10 class CPWSGIServer(wsgiserver.CherryPyWSGIServer):
11 """Wrapper for wsgiserver.CherryPyWSGIServer.
13 wsgiserver has been designed to not reference CherryPy in any way,
14 so that it can be used in other frameworks and applications. Therefore,
15 we wrap it here, so we can set our own mount points from cherrypy.tree
16 and apply some attributes from config -> cherrypy.server -> wsgiserver.
17 """
19 def __init__(self, server_adapter=cherrypy.server):
20 self.server_adapter = server_adapter
21 self.max_request_header_size = self.server_adapter.max_request_header_size or 0
22 self.max_request_body_size = self.server_adapter.max_request_body_size or 0
24 server_name = (self.server_adapter.socket_host or
25 self.server_adapter.socket_file or
26 None)
28 self.wsgi_version = self.server_adapter.wsgi_version
29 s = wsgiserver.CherryPyWSGIServer
30 s.__init__(self, server_adapter.bind_addr, cherrypy.tree,
31 self.server_adapter.thread_pool,
32 server_name,
33 max = self.server_adapter.thread_pool_max,
34 request_queue_size = self.server_adapter.socket_queue_size,
35 timeout = self.server_adapter.socket_timeout,
36 shutdown_timeout = self.server_adapter.shutdown_timeout,
38 self.protocol = self.server_adapter.protocol_version
39 self.nodelay = self.server_adapter.nodelay
41 ssl_module = self.server_adapter.ssl_module or 'pyopenssl'
42 if self.server_adapter.ssl_context:
43 adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module)
44 self.ssl_adapter = adapter_class(
45 self.server_adapter.ssl_certificate,
46 self.server_adapter.ssl_private_key,
47 self.server_adapter.ssl_certificate_chain)
48 self.ssl_adapter.context = self.server_adapter.ssl_context
49 elif self.server_adapter.ssl_certificate:
50 adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module)
51 self.ssl_adapter = adapter_class(
52 self.server_adapter.ssl_certificate,
53 self.server_adapter.ssl_private_key,
54 self.server_adapter.ssl_certificate_chain)