From 7a86ea479898138da70a26b03dbb8759a5d50328 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Mon, 13 Jul 2015 18:23:31 +0200 Subject: setup search engine using inlineCallbacks --- .../soledad/soledad_search_key_masterkey_retrieval_mixin.py | 6 +++++- service/pixelated/config/services.py | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'service/pixelated') diff --git a/service/pixelated/adapter/soledad/soledad_search_key_masterkey_retrieval_mixin.py b/service/pixelated/adapter/soledad/soledad_search_key_masterkey_retrieval_mixin.py index 05d32779..8a912bc2 100644 --- a/service/pixelated/adapter/soledad/soledad_search_key_masterkey_retrieval_mixin.py +++ b/service/pixelated/adapter/soledad/soledad_search_key_masterkey_retrieval_mixin.py @@ -21,7 +21,11 @@ import base64 class SoledadSearchIndexMasterkeyRetrievalMixin(SoledadDbFacadeMixin, object): def get_index_masterkey(self): - result = self.get_search_index_masterkey() + deferred = self.get_search_index_masterkey() + deferred.addCallback(self._ensure_masterkey_exists) + return deferred + + def _ensure_masterkey_exists(self, result): index_key_doc = result[0] if result else None if not index_key_doc: diff --git a/service/pixelated/config/services.py b/service/pixelated/config/services.py index f1c7a540..d5489479 100644 --- a/service/pixelated/config/services.py +++ b/service/pixelated/config/services.py @@ -6,6 +6,7 @@ from pixelated.adapter.soledad.soledad_querier import SoledadQuerier from pixelated.adapter.search import SearchEngine from pixelated.adapter.services.draft_service import DraftService from pixelated.adapter.listeners.mailbox_indexer_listener import MailboxIndexerListener +from twisted.internet import defer class Services(object): @@ -14,7 +15,7 @@ class Services(object): soledad_querier = SoledadQuerier(soledad=leap_session.soledad_session.soledad) - self.search_engine = self.setup_search_engine( + self.setup_search_engine( leap_home, soledad_querier) @@ -44,11 +45,12 @@ class Services(object): def setup_keymanager(self, leap_session): return leap_session.nicknym.keymanager + @defer.inlineCallbacks def setup_search_engine(self, leap_home, soledad_querier): - key = soledad_querier.get_index_masterkey() + key = yield soledad_querier.get_index_masterkey() search_engine = SearchEngine(key, agent_home=leap_home) MailboxIndexerListener.SEARCH_ENGINE = search_engine - return search_engine + self.search_engine = search_engine def setup_mail_service(self, leap_session, soledad_querier, search_engine, pixelated_mailboxes): pixelated_mailboxes.add_welcome_mail_for_fresh_user() -- cgit v1.2.3