Add and use paste server selector. Yeah! Smart solutions!
This commit sponsored by Tryggvi Björgvinsson. Thank you!
This commit is contained in:
parent
9bf845d88f
commit
227a81b534
@ -290,3 +290,34 @@ def paste_app_factory(global_config, **app_config):
|
|||||||
mgoblin_app = hook_transform('wrap_wsgi', mgoblin_app)
|
mgoblin_app = hook_transform('wrap_wsgi', mgoblin_app)
|
||||||
|
|
||||||
return mgoblin_app
|
return mgoblin_app
|
||||||
|
|
||||||
|
|
||||||
|
def paste_server_selector(wsgi_app, global_config=None, **app_config):
|
||||||
|
"""
|
||||||
|
Select between gunicorn and paste depending on what ia available
|
||||||
|
"""
|
||||||
|
# See if we can import the gunicorn server...
|
||||||
|
# otherwise we'll use the paste server
|
||||||
|
try:
|
||||||
|
import gunicorn
|
||||||
|
except ImportError:
|
||||||
|
gunicorn = None
|
||||||
|
|
||||||
|
if gunicorn is None:
|
||||||
|
# use paste
|
||||||
|
from paste.httpserver import server_runner
|
||||||
|
|
||||||
|
cleaned_app_config = dict(
|
||||||
|
[(key, app_config[key])
|
||||||
|
for key in app_config
|
||||||
|
if key in ["host", "port", "handler", "ssl_pem", "ssl_context",
|
||||||
|
"server_version", "protocol_version", "start_loop",
|
||||||
|
"daemon_threads", "socket_timeout", "use_threadpool",
|
||||||
|
"threadpool_workers", "threadpool_options",
|
||||||
|
"request_queue_size"]])
|
||||||
|
|
||||||
|
return server_runner(wsgi_app, global_config, **cleaned_app_config)
|
||||||
|
else:
|
||||||
|
# use gunicorn
|
||||||
|
from gunicorn.app.pasterapp import PasterServerApplication
|
||||||
|
return PasterServerApplication(wsgi_app, global_config, **app_config)
|
||||||
|
@ -52,7 +52,7 @@ debug = false
|
|||||||
# The server that is run by default.
|
# The server that is run by default.
|
||||||
# By default, should only be accessable locally
|
# By default, should only be accessable locally
|
||||||
[server:main]
|
[server:main]
|
||||||
use = egg:gunicorn
|
use = egg:mediagoblin#paste_server_selector
|
||||||
host = 127.0.0.1
|
host = 127.0.0.1
|
||||||
port = 6543
|
port = 6543
|
||||||
# Gunicorn settings. See http://docs.gunicorn.org/en/19.0/settings.html
|
# Gunicorn settings. See http://docs.gunicorn.org/en/19.0/settings.html
|
||||||
|
3
setup.py
3
setup.py
@ -123,6 +123,9 @@ try:
|
|||||||
[paste.app_factory]
|
[paste.app_factory]
|
||||||
app = mediagoblin.app:paste_app_factory
|
app = mediagoblin.app:paste_app_factory
|
||||||
|
|
||||||
|
[paste.server_runner]
|
||||||
|
paste_server_selector = mediagoblin.app:paste_server_selector
|
||||||
|
|
||||||
[paste.filter_app_factory]
|
[paste.filter_app_factory]
|
||||||
errors = mediagoblin.errormiddleware:mgoblin_error_middleware
|
errors = mediagoblin.errormiddleware:mgoblin_error_middleware
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user