Allow /rooms/ admin API to be on workers (#18360)
Tested by https://github.com/matrix-org/sytest/pull/1400
This commit is contained in:
1
changelog.d/18360.misc
Normal file
1
changelog.d/18360.misc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Allow `/rooms/` admin API to be run on workers.
|
||||||
@@ -249,6 +249,7 @@ information.
|
|||||||
^/_matrix/client/(api/v1|r0|v3|unstable)/directory/room/.*$
|
^/_matrix/client/(api/v1|r0|v3|unstable)/directory/room/.*$
|
||||||
^/_matrix/client/(r0|v3|unstable)/capabilities$
|
^/_matrix/client/(r0|v3|unstable)/capabilities$
|
||||||
^/_matrix/client/(r0|v3|unstable)/notifications$
|
^/_matrix/client/(r0|v3|unstable)/notifications$
|
||||||
|
^/_synapse/admin/v1/rooms/
|
||||||
|
|
||||||
# Encryption requests
|
# Encryption requests
|
||||||
^/_matrix/client/(r0|v3|unstable)/keys/query$
|
^/_matrix/client/(r0|v3|unstable)/keys/query$
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ from synapse.logging.context import LoggingContext
|
|||||||
from synapse.metrics import METRICS_PREFIX, MetricsResource, RegistryProxy
|
from synapse.metrics import METRICS_PREFIX, MetricsResource, RegistryProxy
|
||||||
from synapse.replication.http import REPLICATION_PREFIX, ReplicationRestResource
|
from synapse.replication.http import REPLICATION_PREFIX, ReplicationRestResource
|
||||||
from synapse.rest import ClientRestResource
|
from synapse.rest import ClientRestResource
|
||||||
from synapse.rest.admin import register_servlets_for_media_repo
|
from synapse.rest.admin import AdminRestResource, register_servlets_for_media_repo
|
||||||
from synapse.rest.health import HealthResource
|
from synapse.rest.health import HealthResource
|
||||||
from synapse.rest.key.v2 import KeyResource
|
from synapse.rest.key.v2 import KeyResource
|
||||||
from synapse.rest.synapse.client import build_synapse_client_resource_tree
|
from synapse.rest.synapse.client import build_synapse_client_resource_tree
|
||||||
@@ -190,6 +190,7 @@ class GenericWorkerServer(HomeServer):
|
|||||||
|
|
||||||
resources.update(build_synapse_client_resource_tree(self))
|
resources.update(build_synapse_client_resource_tree(self))
|
||||||
resources["/.well-known"] = well_known_resource(self)
|
resources["/.well-known"] = well_known_resource(self)
|
||||||
|
resources["/_synapse/admin"] = AdminRestResource(self)
|
||||||
|
|
||||||
elif name == "federation":
|
elif name == "federation":
|
||||||
resources[FEDERATION_PREFIX] = TransportLayerServer(self)
|
resources[FEDERATION_PREFIX] = TransportLayerServer(self)
|
||||||
|
|||||||
@@ -275,7 +275,9 @@ def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
|
|||||||
"""
|
"""
|
||||||
Register all the admin servlets.
|
Register all the admin servlets.
|
||||||
"""
|
"""
|
||||||
# Admin servlets aren't registered on workers.
|
RoomRestServlet(hs).register(http_server)
|
||||||
|
|
||||||
|
# Admin servlets below may not work on workers.
|
||||||
if hs.config.worker.worker_app is not None:
|
if hs.config.worker.worker_app is not None:
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -283,7 +285,6 @@ def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
|
|||||||
BlockRoomRestServlet(hs).register(http_server)
|
BlockRoomRestServlet(hs).register(http_server)
|
||||||
ListRoomRestServlet(hs).register(http_server)
|
ListRoomRestServlet(hs).register(http_server)
|
||||||
RoomStateRestServlet(hs).register(http_server)
|
RoomStateRestServlet(hs).register(http_server)
|
||||||
RoomRestServlet(hs).register(http_server)
|
|
||||||
RoomRestV2Servlet(hs).register(http_server)
|
RoomRestV2Servlet(hs).register(http_server)
|
||||||
RoomMembersRestServlet(hs).register(http_server)
|
RoomMembersRestServlet(hs).register(http_server)
|
||||||
DeleteRoomStatusByDeleteIdRestServlet(hs).register(http_server)
|
DeleteRoomStatusByDeleteIdRestServlet(hs).register(http_server)
|
||||||
|
|||||||
Reference in New Issue
Block a user