mirror of
https://mau.dev/maunium/synapse.git
synced 2024-11-17 23:42:33 +01:00
Merge pull request #5063 from matrix-org/erikj/move_endpoints
Move some rest endpoints to client reader
This commit is contained in:
commit
6e27a8620f
4 changed files with 21 additions and 4 deletions
1
changelog.d/5063.feature
Normal file
1
changelog.d/5063.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add support for handling /verions, /voip and /push_rules client endpoints to client_reader worker.
|
|
@ -227,6 +227,12 @@ following regular expressions::
|
||||||
^/_matrix/client/(api/v1|r0|unstable)/account/3pid$
|
^/_matrix/client/(api/v1|r0|unstable)/account/3pid$
|
||||||
^/_matrix/client/(api/v1|r0|unstable)/keys/query$
|
^/_matrix/client/(api/v1|r0|unstable)/keys/query$
|
||||||
^/_matrix/client/(api/v1|r0|unstable)/keys/changes$
|
^/_matrix/client/(api/v1|r0|unstable)/keys/changes$
|
||||||
|
^/_matrix/client/versions$
|
||||||
|
^/_matrix/client/(api/v1|r0|unstable)/voip/turnServer$
|
||||||
|
|
||||||
|
Additionally, the following REST endpoints can be handled for GET requests::
|
||||||
|
|
||||||
|
^/_matrix/client/(api/v1|r0|unstable)/pushrules/.*$
|
||||||
|
|
||||||
Additionally, the following REST endpoints can be handled, but all requests must
|
Additionally, the following REST endpoints can be handled, but all requests must
|
||||||
be routed to the same instance::
|
be routed to the same instance::
|
||||||
|
|
|
@ -45,6 +45,7 @@ from synapse.replication.slave.storage.room import RoomStore
|
||||||
from synapse.replication.slave.storage.transactions import SlavedTransactionStore
|
from synapse.replication.slave.storage.transactions import SlavedTransactionStore
|
||||||
from synapse.replication.tcp.client import ReplicationClientHandler
|
from synapse.replication.tcp.client import ReplicationClientHandler
|
||||||
from synapse.rest.client.v1.login import LoginRestServlet
|
from synapse.rest.client.v1.login import LoginRestServlet
|
||||||
|
from synapse.rest.client.v1.push_rule import PushRuleRestServlet
|
||||||
from synapse.rest.client.v1.room import (
|
from synapse.rest.client.v1.room import (
|
||||||
JoinedRoomMemberListRestServlet,
|
JoinedRoomMemberListRestServlet,
|
||||||
PublicRoomListRestServlet,
|
PublicRoomListRestServlet,
|
||||||
|
@ -52,9 +53,11 @@ from synapse.rest.client.v1.room import (
|
||||||
RoomMemberListRestServlet,
|
RoomMemberListRestServlet,
|
||||||
RoomStateRestServlet,
|
RoomStateRestServlet,
|
||||||
)
|
)
|
||||||
|
from synapse.rest.client.v1.voip import VoipRestServlet
|
||||||
from synapse.rest.client.v2_alpha.account import ThreepidRestServlet
|
from synapse.rest.client.v2_alpha.account import ThreepidRestServlet
|
||||||
from synapse.rest.client.v2_alpha.keys import KeyChangesServlet, KeyQueryServlet
|
from synapse.rest.client.v2_alpha.keys import KeyChangesServlet, KeyQueryServlet
|
||||||
from synapse.rest.client.v2_alpha.register import RegisterRestServlet
|
from synapse.rest.client.v2_alpha.register import RegisterRestServlet
|
||||||
|
from synapse.rest.client.versions import VersionsRestServlet
|
||||||
from synapse.server import HomeServer
|
from synapse.server import HomeServer
|
||||||
from synapse.storage.engines import create_engine
|
from synapse.storage.engines import create_engine
|
||||||
from synapse.util.httpresourcetree import create_resource_tree
|
from synapse.util.httpresourcetree import create_resource_tree
|
||||||
|
@ -109,12 +112,12 @@ class ClientReaderServer(HomeServer):
|
||||||
ThreepidRestServlet(self).register(resource)
|
ThreepidRestServlet(self).register(resource)
|
||||||
KeyQueryServlet(self).register(resource)
|
KeyQueryServlet(self).register(resource)
|
||||||
KeyChangesServlet(self).register(resource)
|
KeyChangesServlet(self).register(resource)
|
||||||
|
VoipRestServlet(self).register(resource)
|
||||||
|
PushRuleRestServlet(self).register(resource)
|
||||||
|
VersionsRestServlet(self).register(resource)
|
||||||
|
|
||||||
resources.update({
|
resources.update({
|
||||||
"/_matrix/client/r0": resource,
|
"/_matrix/client": resource,
|
||||||
"/_matrix/client/unstable": resource,
|
|
||||||
"/_matrix/client/v2_alpha": resource,
|
|
||||||
"/_matrix/client/api/v1": resource,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
root_resource = create_resource_tree(resources, NoResource())
|
root_resource = create_resource_tree(resources, NoResource())
|
||||||
|
|
|
@ -39,9 +39,13 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
super(PushRuleRestServlet, self).__init__(hs)
|
super(PushRuleRestServlet, self).__init__(hs)
|
||||||
self.store = hs.get_datastore()
|
self.store = hs.get_datastore()
|
||||||
self.notifier = hs.get_notifier()
|
self.notifier = hs.get_notifier()
|
||||||
|
self._is_worker = hs.config.worker_app is not None
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_PUT(self, request):
|
def on_PUT(self, request):
|
||||||
|
if self._is_worker:
|
||||||
|
raise Exception("Cannot handle PUT /push_rules on worker")
|
||||||
|
|
||||||
spec = _rule_spec_from_path([x.decode('utf8') for x in request.postpath])
|
spec = _rule_spec_from_path([x.decode('utf8') for x in request.postpath])
|
||||||
try:
|
try:
|
||||||
priority_class = _priority_class_from_spec(spec)
|
priority_class = _priority_class_from_spec(spec)
|
||||||
|
@ -103,6 +107,9 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_DELETE(self, request):
|
def on_DELETE(self, request):
|
||||||
|
if self._is_worker:
|
||||||
|
raise Exception("Cannot handle DELETE /push_rules on worker")
|
||||||
|
|
||||||
spec = _rule_spec_from_path([x.decode('utf8') for x in request.postpath])
|
spec = _rule_spec_from_path([x.decode('utf8') for x in request.postpath])
|
||||||
|
|
||||||
requester = yield self.auth.get_user_by_req(request)
|
requester = yield self.auth.get_user_by_req(request)
|
||||||
|
|
Loading…
Reference in a new issue