diff options
author | Erik Johnston <erik@matrix.org> | 2018-08-09 10:29:48 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2018-08-09 10:37:38 +0100 |
commit | b179537f2a51f4de52e2625939cc32eeba75cd6b (patch) | |
tree | 19efab6ffc3a4ff985aa4b0a185368bb16e411eb /synapse/replication | |
parent | Fixup doc comments (diff) | |
download | synapse-b179537f2a51f4de52e2625939cc32eeba75cd6b.tar.xz |
Move clean_room_for_join to master
Diffstat (limited to 'synapse/replication')
-rw-r--r-- | synapse/replication/http/federation.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/synapse/replication/http/federation.py b/synapse/replication/http/federation.py index 3e6cbbf5a1..7b0b1cd32e 100644 --- a/synapse/replication/http/federation.py +++ b/synapse/replication/http/federation.py @@ -256,7 +256,42 @@ class ReplicationGetQueryRestServlet(ReplicationEndpoint): defer.returnValue((200, result)) +class ReplicationCleanRoomRestServlet(ReplicationEndpoint): + """Called to clean up any data in DB for a given room, ready for the + server to join the room. + + Request format: + + POST /_synapse/replication/fed_query/:fed_cleanup_room/:txn_id + + {} + """ + + NAME = "fed_cleanup_room" + PATH_ARGS = ("room_id",) + + def __init__(self, hs): + super(ReplicationCleanRoomRestServlet, self).__init__(hs) + + self.store = hs.get_datastore() + + @staticmethod + def _serialize_payload(room_id, args): + """ + Args: + room_id (str) + """ + return {} + + @defer.inlineCallbacks + def _handle_request(self, request, room_id): + yield self.store.clean_room_for_join(room_id) + + defer.returnValue((200, {})) + + def register_servlets(hs, http_server): ReplicationFederationSendEventsRestServlet(hs).register(http_server) ReplicationFederationSendEduRestServlet(hs).register(http_server) ReplicationGetQueryRestServlet(hs).register(http_server) + ReplicationCleanRoomRestServlet(hs).register(http_server) |