diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2014-10-09 18:24:14 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2014-10-10 14:42:17 -0500 |
commit | 227a81b534c2f77f6cdb10a5936c6b1dfb8c3ec6 (patch) | |
tree | f421f5db3d96925be81f78b60f2196a2eb4c7ff4 /mediagoblin/app.py | |
parent | 9bf845d88f3a08b3090a4a408189fc965b341148 (diff) | |
download | mediagoblin-227a81b534c2f77f6cdb10a5936c6b1dfb8c3ec6.tar.lz mediagoblin-227a81b534c2f77f6cdb10a5936c6b1dfb8c3ec6.tar.xz mediagoblin-227a81b534c2f77f6cdb10a5936c6b1dfb8c3ec6.zip |
Add and use paste server selector. Yeah! Smart solutions!
This commit sponsored by Tryggvi Björgvinsson. Thank you!
Diffstat (limited to 'mediagoblin/app.py')
-rw-r--r-- | mediagoblin/app.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mediagoblin/app.py b/mediagoblin/app.py index b3e41835..9014bf47 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -290,3 +290,34 @@ def paste_app_factory(global_config, **app_config): mgoblin_app = hook_transform('wrap_wsgi', 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) |