summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Gomes <tiago.gomes@codethink.co.uk>2013-09-04 16:29:50 +0100
committerTiago Gomes <tiago.gomes@codethink.co.uk>2013-09-12 16:00:32 +0100
commit5e4ad62d4d5b8ecabf4aa01b6de918fc322b8292 (patch)
treee1fb531c588ad5cedbb81939ef2ca66620e662d8
parent040ddbcce41c576fab28f9004cbcbb0109cfb26a (diff)
downloadmorph-5e4ad62d4d5b8ecabf4aa01b6de918fc322b8292.tar.gz
Allow to use flup as the backend server for bottle.
lighttpd does not support WSGI, so we need to be able to run the server in FCGI mode. The flup package provides one. Running with the default bottle server is still useful for testing purposes.
-rwxr-xr-xmorph-cache-server14
1 files changed, 11 insertions, 3 deletions
diff --git a/morph-cache-server b/morph-cache-server
index d3e42c62..1c9a53de 100755
--- a/morph-cache-server
+++ b/morph-cache-server
@@ -26,7 +26,7 @@ import urllib2
import shutil
from bottle import Bottle, request, response, run, static_file
-
+from flup.server.fcgi import WSGIServer
from morphcacheserver.repocache import RepoCache
@@ -61,6 +61,10 @@ class MorphCacheServer(cliapp.Application):
'cache directories are directly managed')
self.settings.boolean(['enable-writes'],
'enable the write methods (fetch and delete)')
+ self.settings.boolean(['fcgi-server'],
+ 'runs a fcgi-server',
+ default=True)
+
def _fetch_artifact(self, url, filename):
in_fh = None
@@ -302,8 +306,12 @@ class MorphCacheServer(cliapp.Application):
root = Bottle()
root.mount(app, '/1.0')
-
- run(root, host='0.0.0.0', port=self.settings['port'], reloader=True)
+
+
+ if self.settings['fcgi-server']:
+ WSGIServer(root).run()
+ else:
+ run(root, host='0.0.0.0', port=self.settings['port'], reloader=True)
def _unescape_parameter(self, param):
return urllib.unquote(param)