From a2f041de7f1ea653f078ac9cd532e2d2b774248f Mon Sep 17 00:00:00 2001 From: drebs Date: Thu, 2 Feb 2017 11:45:57 -0200 Subject: [refactor] parametrize blobs toggling in soledad server resource --- server/src/leap/soledad/server/_resource.py | 17 ++++++++++++----- server/src/leap/soledad/server/auth.py | 10 ++++++++-- 2 files changed, 20 insertions(+), 7 deletions(-) (limited to 'server') diff --git a/server/src/leap/soledad/server/_resource.py b/server/src/leap/soledad/server/_resource.py index fec290a2..156e18aa 100644 --- a/server/src/leap/soledad/server/_resource.py +++ b/server/src/leap/soledad/server/_resource.py @@ -33,17 +33,24 @@ class SoledadResource(Resource): for the Soledad Server. """ - def __init__(self, conf, sync_pool=None): - Resource.__init__(self) + def __init__(self, enable_blobs=False, sync_pool=None): + """ + Initialize the Soledad resource. + + :param enable_blobs: Whether the blobs feature should be enabled. + :type enable_blobs: bool - blobs_enabled = conf['soledad-server']['blobs'] + :param sync_pool: A pool to pass to the WSGI sync resource. + :type sync_pool: twisted.python.threadpool.ThreadPool + """ + Resource.__init__(self) # requests to / return server information - server_info = ServerInfo(blobs_enabled) + server_info = ServerInfo(enable_blobs) self.putChild('', server_info) # requests to /blobs will serve blobs if enabled - if blobs_enabled: + if enable_blobs: self.putChild('blobs', blobs_resource) # other requests are routed to legacy sync resource diff --git a/server/src/leap/soledad/server/auth.py b/server/src/leap/soledad/server/auth.py index d7ccdeb9..0ec890ca 100644 --- a/server/src/leap/soledad/server/auth.py +++ b/server/src/leap/soledad/server/auth.py @@ -42,12 +42,18 @@ from ._config import get_config @implementer(IRealm) class SoledadRealm(object): - def __init__(self, sync_pool=None): + def __init__(self, conf=None, sync_pool=None): + if not conf: + conf = get_config() + self._conf = conf self._sync_pool = sync_pool def requestAvatar(self, avatarId, mind, *interfaces): if IResource in interfaces: - resource = SoledadResource(sync_pool=self._sync_pool) + enable_blobs = self._conf['soledad-server']['blobs'] + resource = SoledadResource( + enable_blobs=enable_blobs, + sync_pool=self._sync_pool) return (IResource, resource, lambda: None) raise NotImplementedError() -- cgit v1.2.3