forked from MirrorHub/synapse
Split AS stores
This commit is contained in:
parent
27b094f382
commit
46244b2759
2 changed files with 23 additions and 37 deletions
|
@ -13,33 +13,11 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from ._base import BaseSlavedStore
|
from synapse.storage.appservice import (
|
||||||
from synapse.storage import DataStore
|
ApplicationServiceWorkerStore, ApplicationServiceTransactionWorkerStore,
|
||||||
from synapse.config.appservice import load_appservices
|
)
|
||||||
from synapse.storage.appservice import _make_exclusive_regex
|
|
||||||
|
|
||||||
|
|
||||||
class SlavedApplicationServiceStore(BaseSlavedStore):
|
class SlavedApplicationServiceStore(ApplicationServiceTransactionWorkerStore,
|
||||||
def __init__(self, db_conn, hs):
|
ApplicationServiceWorkerStore):
|
||||||
super(SlavedApplicationServiceStore, self).__init__(db_conn, hs)
|
pass
|
||||||
self.services_cache = load_appservices(
|
|
||||||
hs.config.server_name,
|
|
||||||
hs.config.app_service_config_files
|
|
||||||
)
|
|
||||||
self.exclusive_user_regex = _make_exclusive_regex(self.services_cache)
|
|
||||||
|
|
||||||
get_app_service_by_token = DataStore.get_app_service_by_token.__func__
|
|
||||||
get_app_service_by_user_id = DataStore.get_app_service_by_user_id.__func__
|
|
||||||
get_app_services = DataStore.get_app_services.__func__
|
|
||||||
get_new_events_for_appservice = DataStore.get_new_events_for_appservice.__func__
|
|
||||||
create_appservice_txn = DataStore.create_appservice_txn.__func__
|
|
||||||
get_appservices_by_state = DataStore.get_appservices_by_state.__func__
|
|
||||||
get_oldest_unsent_txn = DataStore.get_oldest_unsent_txn.__func__
|
|
||||||
_get_last_txn = DataStore._get_last_txn.__func__
|
|
||||||
complete_appservice_txn = DataStore.complete_appservice_txn.__func__
|
|
||||||
get_appservice_state = DataStore.get_appservice_state.__func__
|
|
||||||
set_appservice_last_pos = DataStore.set_appservice_last_pos.__func__
|
|
||||||
set_appservice_state = DataStore.set_appservice_state.__func__
|
|
||||||
get_if_app_services_interested_in_user = (
|
|
||||||
DataStore.get_if_app_services_interested_in_user.__func__
|
|
||||||
)
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ from twisted.internet import defer
|
||||||
from synapse.api.constants import Membership
|
from synapse.api.constants import Membership
|
||||||
from synapse.appservice import AppServiceTransaction
|
from synapse.appservice import AppServiceTransaction
|
||||||
from synapse.config.appservice import load_appservices
|
from synapse.config.appservice import load_appservices
|
||||||
|
from synapse.storage.events import EventsWorkerStore
|
||||||
from synapse.storage.roommember import RoomsForUser
|
from synapse.storage.roommember import RoomsForUser
|
||||||
from ._base import SQLBaseStore
|
from ._base import SQLBaseStore
|
||||||
|
|
||||||
|
@ -46,17 +47,16 @@ def _make_exclusive_regex(services_cache):
|
||||||
return exclusive_user_regex
|
return exclusive_user_regex
|
||||||
|
|
||||||
|
|
||||||
class ApplicationServiceStore(SQLBaseStore):
|
class ApplicationServiceWorkerStore(SQLBaseStore):
|
||||||
|
|
||||||
def __init__(self, db_conn, hs):
|
def __init__(self, db_conn, hs):
|
||||||
super(ApplicationServiceStore, self).__init__(db_conn, hs)
|
|
||||||
self.hostname = hs.hostname
|
|
||||||
self.services_cache = load_appservices(
|
self.services_cache = load_appservices(
|
||||||
hs.hostname,
|
hs.hostname,
|
||||||
hs.config.app_service_config_files
|
hs.config.app_service_config_files
|
||||||
)
|
)
|
||||||
self.exclusive_user_regex = _make_exclusive_regex(self.services_cache)
|
self.exclusive_user_regex = _make_exclusive_regex(self.services_cache)
|
||||||
|
|
||||||
|
super(ApplicationServiceWorkerStore, self).__init__(db_conn, hs)
|
||||||
|
|
||||||
def get_app_services(self):
|
def get_app_services(self):
|
||||||
return self.services_cache
|
return self.services_cache
|
||||||
|
|
||||||
|
@ -112,6 +112,13 @@ class ApplicationServiceStore(SQLBaseStore):
|
||||||
return service
|
return service
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
class ApplicationServiceStore(ApplicationServiceWorkerStore):
|
||||||
|
|
||||||
|
def __init__(self, db_conn, hs):
|
||||||
|
super(ApplicationServiceStore, self).__init__(db_conn, hs)
|
||||||
|
self.hostname = hs.hostname
|
||||||
|
|
||||||
def get_app_service_rooms(self, service):
|
def get_app_service_rooms(self, service):
|
||||||
"""Get a list of RoomsForUser for this application service.
|
"""Get a list of RoomsForUser for this application service.
|
||||||
|
|
||||||
|
@ -184,11 +191,8 @@ class ApplicationServiceStore(SQLBaseStore):
|
||||||
return rooms_for_user_matching_user_id
|
return rooms_for_user_matching_user_id
|
||||||
|
|
||||||
|
|
||||||
class ApplicationServiceTransactionStore(SQLBaseStore):
|
class ApplicationServiceTransactionWorkerStore(ApplicationServiceWorkerStore,
|
||||||
|
EventsWorkerStore):
|
||||||
def __init__(self, db_conn, hs):
|
|
||||||
super(ApplicationServiceTransactionStore, self).__init__(db_conn, hs)
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def get_appservices_by_state(self, state):
|
def get_appservices_by_state(self, state):
|
||||||
"""Get a list of application services based on their state.
|
"""Get a list of application services based on their state.
|
||||||
|
@ -433,3 +437,7 @@ class ApplicationServiceTransactionStore(SQLBaseStore):
|
||||||
events = yield self._get_events(event_ids)
|
events = yield self._get_events(event_ids)
|
||||||
|
|
||||||
defer.returnValue((upper_bound, events))
|
defer.returnValue((upper_bound, events))
|
||||||
|
|
||||||
|
|
||||||
|
class ApplicationServiceTransactionStore(ApplicationServiceTransactionWorkerStore):
|
||||||
|
pass
|
||||||
|
|
Loading…
Reference in a new issue