summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrebs <drebs@leap.se>2016-11-21 16:49:41 -0200
committerdrebs <drebs@leap.se>2016-11-22 17:59:04 -0200
commita37333302801fcc4039897839f021ba127c9b846 (patch)
treed0da8531b3a1a431fde65cc0c19bcee01cba24ff
parent0fd7e9f018b02161a844c11332ffced56b256010 (diff)
[refactor] separate server application into another file
Conflicts: server/src/leap/soledad/server/__init__.py testing/tests/conftest.py
-rwxr-xr-xscripts/docker/files/bin/setup-test-env.py2
-rw-r--r--server/pkg/soledad-server2
-rw-r--r--server/src/leap/soledad/server/__init__.py44
-rw-r--r--server/src/leap/soledad/server/application.py47
-rw-r--r--testing/tests/perf/conftest.py2
5 files changed, 54 insertions, 43 deletions
diff --git a/scripts/docker/files/bin/setup-test-env.py b/scripts/docker/files/bin/setup-test-env.py
index 4868fd56..bbf5267c 100755
--- a/scripts/docker/files/bin/setup-test-env.py
+++ b/scripts/docker/files/bin/setup-test-env.py
@@ -256,7 +256,7 @@ def soledad_server_start(args):
'--logfile=%s' % logfile,
'--pidfile=%s' % pidfile,
'web',
- '--wsgi=leap.soledad.server.application',
+ '--wsgi=leap.soledad.server.application.wsgi_application',
'--port=%s' % port
]
if args.no_daemonize:
diff --git a/server/pkg/soledad-server b/server/pkg/soledad-server
index 9dada6a0..d9dab040 100644
--- a/server/pkg/soledad-server
+++ b/server/pkg/soledad-server
@@ -11,7 +11,7 @@
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PIDFILE=/var/run/soledad.pid
-OBJ=leap.soledad.server.application
+OBJ=leap.soledad.server.application.wsgi_application
HTTPS_PORT=2424
CONFDIR=/etc/soledad
CERT_PATH="${CONFDIR}/soledad-server.pem"
diff --git a/server/src/leap/soledad/server/__init__.py b/server/src/leap/soledad/server/__init__.py
index d154e3fe..d8243c19 100644
--- a/server/src/leap/soledad/server/__init__.py
+++ b/server/src/leap/soledad/server/__init__.py
@@ -25,7 +25,9 @@ General information
This is written as a Twisted application and intended to be run using the
twistd command. To start the soledad server, run:
- twistd -n web --wsgi=leap.soledad.server.application --port=X
+ twistd -n web \
+ --wsgi=leap.soledad.server.application.wsgi_application \
+ --port=X
An initscript is included and will be installed system wide to make it
feasible to start and stop the Soledad server service using a standard
@@ -84,24 +86,17 @@ import urlparse
import sys
from leap.soledad.common.l2db.remote import http_app, utils
+from leap.soledad.common import SHARED_DB_NAME
-from leap.soledad.server.auth import SoledadTokenAuthMiddleware
-from leap.soledad.server.gzip_middleware import GzipMiddleware
from leap.soledad.server.sync import SyncResource
from leap.soledad.server.sync import MAX_REQUEST_SIZE
from leap.soledad.server.sync import MAX_ENTRY_SIZE
-from leap.soledad.server.config import load_configuration
-
-from leap.soledad.common import SHARED_DB_NAME
-from leap.soledad.common.backend import SoledadBackend
-from leap.soledad.common.couch.state import CouchServerState
from ._version import get_versions
__all__ = [
'SoledadApp',
- 'application',
'__version__',
]
@@ -255,36 +250,5 @@ class HTTPInvocationByMethodWithBody(
http_app.HTTPInvocationByMethodWithBody = HTTPInvocationByMethodWithBody
-# ----------------------------------------------------------------------------
-# Run as Twisted WSGI Resource
-# ----------------------------------------------------------------------------
-
-
-def _load_config():
- conf = load_configuration('/etc/soledad/soledad-server.conf')
- return conf['soledad-server']
-
-
-def _get_couch_state():
- conf = _load_config()
- state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd'],
- check_schema_versions=True)
- SoledadBackend.BATCH_SUPPORT = conf.get('batching', False)
- return state
-
-try:
- _couch_state = _get_couch_state()
- # a WSGI application that may be used by `twistd -web`
- application = GzipMiddleware(
- SoledadTokenAuthMiddleware(SoledadApp(_couch_state)))
-except:
- pass
-
-
-# another WSGI application in which we bypass token auth middleware for ease of
-# mind while debugging in your local environment
-# debug_local_application_do_not_use = SoledadApp(_couch_state)
-
-
__version__ = get_versions()['version']
del get_versions
diff --git a/server/src/leap/soledad/server/application.py b/server/src/leap/soledad/server/application.py
new file mode 100644
index 00000000..a9ebcaf6
--- /dev/null
+++ b/server/src/leap/soledad/server/application.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+# application.py
+# Copyright (C) 2013 LEAP
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+from leap.soledad.server import SoledadApp
+from leap.soledad.server.auth import SoledadTokenAuthMiddleware
+from leap.soledad.server.gzip_middleware import GzipMiddleware
+from leap.soledad.server.config import load_configuration
+from leap.soledad.common.backend import SoledadBackend
+from leap.soledad.common.couch.state import CouchServerState
+
+
+# ----------------------------------------------------------------------------
+# Run as Twisted WSGI Resource
+# ----------------------------------------------------------------------------
+
+def _load_config():
+ conf = load_configuration('/etc/soledad/soledad-server.conf')
+ return conf['soledad-server']
+
+
+def _get_couch_state():
+ conf = _load_config()
+ state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd'],
+ check_schema_versions=True)
+ SoledadBackend.BATCH_SUPPORT = conf.get('batching', False)
+ return state
+
+
+_couch_state = _get_couch_state()
+
+# a WSGI application that may be used by `twistd -web`
+wsgi_application = GzipMiddleware(
+ SoledadTokenAuthMiddleware(SoledadApp(_couch_state)))
diff --git a/testing/tests/perf/conftest.py b/testing/tests/perf/conftest.py
index 5ac1f3c0..6fa6b2c0 100644
--- a/testing/tests/perf/conftest.py
+++ b/testing/tests/perf/conftest.py
@@ -162,7 +162,7 @@ class SoledadServer(object):
'--logfile=%s' % self._logfile,
'--pidfile=%s' % self._pidfile,
'web',
- '--wsgi=leap.soledad.server.application',
+ '--wsgi=leap.soledad.server.application.wsgi_application',
'--port=2424'
])