summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2020-05-18 12:24:48 +0100
committerGitHub <noreply@github.com>2020-05-18 12:24:48 +0100
commit51055c8c4409e70e8f310fce420b2f2f7f7a257a (patch)
treeb460816865188f0a77722a72d804fac2c6daa6a9
parentMerge pull request #7519 from matrix-org/rav/kill_py2_code (diff)
downloadsynapse-51055c8c4409e70e8f310fce420b2f2f7f7a257a.tar.xz
Allow ReplicationRestResource to be added to workers (#7515)
This allows workers to talk to each other over HTTP replication.
-rw-r--r--changelog.d/7515.misc1
-rw-r--r--synapse/app/generic_worker.py4
-rw-r--r--synapse/replication/http/__init__.py13
3 files changed, 13 insertions, 5 deletions
diff --git a/changelog.d/7515.misc b/changelog.d/7515.misc
new file mode 100644

index 0000000000..48f3044f90 --- /dev/null +++ b/changelog.d/7515.misc
@@ -0,0 +1 @@ +Allow `ReplicationRestResource` to be added to workers. diff --git a/synapse/app/generic_worker.py b/synapse/app/generic_worker.py
index ab801108ca..506b70443b 100644 --- a/synapse/app/generic_worker.py +++ b/synapse/app/generic_worker.py
@@ -47,6 +47,7 @@ from synapse.http.site import SynapseSite 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 @@ -570,6 +571,9 @@ class GenericWorkerServer(HomeServer): 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( diff --git a/synapse/replication/http/__init__.py b/synapse/replication/http/__init__.py
index 4613b2538c..a909744e93 100644 --- a/synapse/replication/http/__init__.py +++ b/synapse/replication/http/__init__.py
@@ -34,9 +34,12 @@ class ReplicationRestResource(JsonResource): 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)