summary refs log tree commit diff
path: root/synapse/federation/federation_client.py
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/federation/federation_client.py')
-rw-r--r--synapse/federation/federation_client.py112
1 files changed, 7 insertions, 105 deletions
diff --git a/synapse/federation/federation_client.py b/synapse/federation/federation_client.py
index fee1477ab6..3b85b135e0 100644
--- a/synapse/federation/federation_client.py
+++ b/synapse/federation/federation_client.py
@@ -128,7 +128,7 @@ class FederationClient(FederationBase):
             reset_expiry_on_get=False,
         )
 
-    def _clear_tried_cache(self) -> None:
+    def _clear_tried_cache(self):
         """Clear pdu_destination_tried cache"""
         now = self._clock.time_msec()
 
@@ -800,7 +800,7 @@ class FederationClient(FederationBase):
                 no servers successfully handle the request.
         """
 
-        async def send_request(destination: str) -> SendJoinResult:
+        async def send_request(destination) -> SendJoinResult:
             response = await self._do_send_join(room_version, destination, pdu)
 
             # If an event was returned (and expected to be returned):
@@ -1395,28 +1395,11 @@ class FederationClient(FederationBase):
         async def send_request(
             destination: str,
         ) -> Tuple[JsonDict, Sequence[JsonDict], Sequence[str]]:
-            try:
-                res = await self.transport_layer.get_room_hierarchy(
-                    destination=destination,
-                    room_id=room_id,
-                    suggested_only=suggested_only,
-                )
-            except HttpResponseException as e:
-                # If an error is received that is due to an unrecognised endpoint,
-                # fallback to the unstable endpoint. Otherwise consider it a
-                # legitmate error and raise.
-                if not self._is_unknown_endpoint(e):
-                    raise
-
-                logger.debug(
-                    "Couldn't fetch room hierarchy with the v1 API, falling back to the unstable API"
-                )
-
-                res = await self.transport_layer.get_room_hierarchy_unstable(
-                    destination=destination,
-                    room_id=room_id,
-                    suggested_only=suggested_only,
-                )
+            res = await self.transport_layer.get_room_hierarchy(
+                destination=destination,
+                room_id=room_id,
+                suggested_only=suggested_only,
+            )
 
             room = res.get("room")
             if not isinstance(room, dict):
@@ -1466,10 +1449,6 @@ class FederationClient(FederationBase):
             if e.code != 502:
                 raise
 
-            logger.debug(
-                "Couldn't fetch room hierarchy, falling back to the spaces API"
-            )
-
             # Fallback to the old federation API and translate the results if
             # no servers implement the new API.
             #
@@ -1517,83 +1496,6 @@ class FederationClient(FederationBase):
         self._get_room_hierarchy_cache[(room_id, suggested_only)] = result
         return result
 
-    async def timestamp_to_event(
-        self, destination: str, room_id: str, timestamp: int, direction: str
-    ) -> "TimestampToEventResponse":
-        """
-        Calls a remote federating server at `destination` asking for their
-        closest event to the given timestamp in the given direction. Also
-        validates the response to always return the expected keys or raises an
-        error.
-
-        Args:
-            destination: Domain name of the remote homeserver
-            room_id: Room to fetch the event from
-            timestamp: The point in time (inclusive) we should navigate from in
-                the given direction to find the closest event.
-            direction: ["f"|"b"] to indicate whether we should navigate forward
-                or backward from the given timestamp to find the closest event.
-
-        Returns:
-            A parsed TimestampToEventResponse including the closest event_id
-            and origin_server_ts
-
-        Raises:
-            Various exceptions when the request fails
-            InvalidResponseError when the response does not have the correct
-            keys or wrong types
-        """
-        remote_response = await self.transport_layer.timestamp_to_event(
-            destination, room_id, timestamp, direction
-        )
-
-        if not isinstance(remote_response, dict):
-            raise InvalidResponseError(
-                "Response must be a JSON dictionary but received %r" % remote_response
-            )
-
-        try:
-            return TimestampToEventResponse.from_json_dict(remote_response)
-        except ValueError as e:
-            raise InvalidResponseError(str(e))
-
-
-@attr.s(frozen=True, slots=True, auto_attribs=True)
-class TimestampToEventResponse:
-    """Typed response dictionary for the federation /timestamp_to_event endpoint"""
-
-    event_id: str
-    origin_server_ts: int
-
-    # the raw data, including the above keys
-    data: JsonDict
-
-    @classmethod
-    def from_json_dict(cls, d: JsonDict) -> "TimestampToEventResponse":
-        """Parsed response from the federation /timestamp_to_event endpoint
-
-        Args:
-            d: JSON object response to be parsed
-
-        Raises:
-            ValueError if d does not the correct keys or they are the wrong types
-        """
-
-        event_id = d.get("event_id")
-        if not isinstance(event_id, str):
-            raise ValueError(
-                "Invalid response: 'event_id' must be a str but received %r" % event_id
-            )
-
-        origin_server_ts = d.get("origin_server_ts")
-        if not isinstance(origin_server_ts, int):
-            raise ValueError(
-                "Invalid response: 'origin_server_ts' must be a int but received %r"
-                % origin_server_ts
-            )
-
-        return cls(event_id, origin_server_ts, d)
-
 
 @attr.s(frozen=True, slots=True, auto_attribs=True)
 class FederationSpaceSummaryEventResult: