summaryrefslogtreecommitdiff
path: root/scripts/profiling/mail/soledad_server.py
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2014-09-16 11:43:58 -0500
committerKali Kaneko <kali@leap.se>2014-09-16 11:43:58 -0500
commit509f76c21c7c847dc4111847a3585be7bb67e350 (patch)
treeee7b2d6bf5921fee9de6e27b0a7a6d97ab559364 /scripts/profiling/mail/soledad_server.py
parent22d3a8d4c6a1e652109378245989f4f6a71d1f42 (diff)
parent2f1ee76a7169abc100efdf706f12a0abf6032f04 (diff)
Merge remote-tracking branch 'drebs-github/add-benchmarking-scripts' into develop
Diffstat (limited to 'scripts/profiling/mail/soledad_server.py')
-rw-r--r--scripts/profiling/mail/soledad_server.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/scripts/profiling/mail/soledad_server.py b/scripts/profiling/mail/soledad_server.py
new file mode 100644
index 00000000..ad014456
--- /dev/null
+++ b/scripts/profiling/mail/soledad_server.py
@@ -0,0 +1,48 @@
+import threading
+
+from wsgiref.simple_server import make_server
+
+from leap.soledad.common.couch import CouchServerState
+
+from leap.soledad.server import SoledadApp
+from leap.soledad.server.gzip_middleware import GzipMiddleware
+from leap.soledad.server.auth import SoledadTokenAuthMiddleware
+
+from util import log
+
+
+class SoledadServerThread(threading.Thread):
+ def __init__(self, server):
+ threading.Thread.__init__(self)
+ self._server = server
+
+ def run(self):
+ self._server.serve_forever()
+
+ def stop(self):
+ self._server.shutdown()
+
+ @property
+ def port(self):
+ return self._server.server_port
+
+
+def make_soledad_server_thread(couch_port):
+ state = CouchServerState(
+ 'http://127.0.0.1:%d' % couch_port,
+ 'shared',
+ 'tokens')
+ application = GzipMiddleware(
+ SoledadTokenAuthMiddleware(SoledadApp(state)))
+ server = make_server('', 0, application)
+ t = SoledadServerThread(server)
+ return t
+
+
+def get_soledad_server(couchdb_port):
+ log("Starting soledad server... ", line_break=False)
+ soledad_server = make_soledad_server_thread(couchdb_port)
+ soledad_server.start()
+ log("soledad server started on port %d." % soledad_server.port)
+ return soledad_server
+