Skip to content

Commit

Permalink
Allow ReplicationRestResource to be added to workers (matrix-org#7515)
Browse files Browse the repository at this point in the history
This allows workers to talk to each other over HTTP replication.
  • Loading branch information
erikjohnston authored and phil-flex committed Jun 16, 2020
1 parent 870d559 commit 578d973
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
1 change: 1 addition & 0 deletions changelog.d/7515.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Allow `ReplicationRestResource` to be added to workers.
4 changes: 4 additions & 0 deletions synapse/app/generic_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
from synapse.logging.context import LoggingContext
from synapse.metrics import METRICS_PREFIX, MetricsResource, RegistryProxy
from synapse.metrics.background_process_metrics import run_as_background_process
from synapse.replication.http import REPLICATION_PREFIX, ReplicationRestResource
from synapse.replication.slave.storage._base import BaseSlavedStore
from synapse.replication.slave.storage.account_data import SlavedAccountDataStore
from synapse.replication.slave.storage.appservice import SlavedApplicationServiceStore
Expand Down Expand Up @@ -570,6 +571,9 @@ def _listen_http(self, listener_config):
if name in ["keys", "federation"]:
resources[SERVER_KEY_V2_PREFIX] = KeyApiV2Resource(self)

if name == "replication":
resources[REPLICATION_PREFIX] = ReplicationRestResource(self)

root_resource = create_resource_tree(resources, NoResource())

_base.listen_tcp(
Expand Down
13 changes: 8 additions & 5 deletions synapse/replication/http/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,12 @@ def __init__(self, hs):

def register_servlets(self, hs):
send_event.register_servlets(hs, self)
membership.register_servlets(hs, self)
federation.register_servlets(hs, self)
login.register_servlets(hs, self)
register.register_servlets(hs, self)
devices.register_servlets(hs, self)
streams.register_servlets(hs, self)

# The following can't currently be instantiated on workers.
if hs.config.worker.worker_app is None:
membership.register_servlets(hs, self)
login.register_servlets(hs, self)
register.register_servlets(hs, self)
devices.register_servlets(hs, self)
streams.register_servlets(hs, self)

0 comments on commit 578d973

Please sign in to comment.