Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 9b7ac03

Browse files
authored
Convert calls of async database methods to async (#8166)
1 parent c9fa696 commit 9b7ac03

File tree

14 files changed

+114
-84
lines changed

14 files changed

+114
-84
lines changed

changelog.d/8166.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Convert various parts of the codebase to async/await.

synapse/federation/persistence.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121

2222
import logging
2323

24+
from synapse.federation.units import Transaction
2425
from synapse.logging.utils import log_function
26+
from synapse.types import JsonDict
2527

2628
logger = logging.getLogger(__name__)
2729

@@ -49,15 +51,15 @@ def have_responded(self, origin, transaction):
4951
return self.store.get_received_txn_response(transaction.transaction_id, origin)
5052

5153
@log_function
52-
def set_response(self, origin, transaction, code, response):
54+
async def set_response(
55+
self, origin: str, transaction: Transaction, code: int, response: JsonDict
56+
) -> None:
5357
""" Persist how we responded to a transaction.
54-
55-
Returns:
56-
Deferred
5758
"""
58-
if not transaction.transaction_id:
59+
transaction_id = transaction.transaction_id # type: ignore
60+
if not transaction_id:
5961
raise RuntimeError("Cannot persist a transaction with no transaction_id")
6062

61-
return self.store.set_received_txn_response(
62-
transaction.transaction_id, origin, code, response
63+
await self.store.set_received_txn_response(
64+
transaction_id, origin, code, response
6365
)

synapse/federation/units.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,7 @@ def __init__(self, transaction_id=None, pdus=[], **kwargs):
107107
if "edus" in kwargs and not kwargs["edus"]:
108108
del kwargs["edus"]
109109

110-
super(Transaction, self).__init__(
111-
transaction_id=transaction_id, pdus=pdus, **kwargs
112-
)
110+
super().__init__(transaction_id=transaction_id, pdus=pdus, **kwargs)
113111

114112
@staticmethod
115113
def create_new(pdus, **kwargs):

synapse/storage/databases/main/appservice.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,16 +161,14 @@ async def get_appservice_state(self, service):
161161
return result.get("state")
162162
return None
163163

164-
def set_appservice_state(self, service, state):
164+
async def set_appservice_state(self, service, state) -> None:
165165
"""Set the application service state.
166166
167167
Args:
168168
service(ApplicationService): The service whose state to set.
169169
state(ApplicationServiceState): The connectivity state to apply.
170-
Returns:
171-
An Awaitable which resolves when the state was set successfully.
172170
"""
173-
return self.db_pool.simple_upsert(
171+
await self.db_pool.simple_upsert(
174172
"application_services_state", {"as_id": service.id}, {"state": state}
175173
)
176174

synapse/storage/databases/main/devices.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -716,11 +716,11 @@ async def get_user_ids_requiring_device_list_resync(
716716

717717
return {row["user_id"] for row in rows}
718718

719-
def mark_remote_user_device_cache_as_stale(self, user_id: str):
719+
async def mark_remote_user_device_cache_as_stale(self, user_id: str) -> None:
720720
"""Records that the server has reason to believe the cache of the devices
721721
for the remote users is out of date.
722722
"""
723-
return self.db_pool.simple_upsert(
723+
await self.db_pool.simple_upsert(
724724
table="device_lists_remote_resync",
725725
keyvalues={"user_id": user_id},
726726
values={},

synapse/storage/databases/main/group_server.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,13 @@ def remove_room_from_summary(self, group_id, room_id, category_id):
742742
desc="remove_room_from_summary",
743743
)
744744

745-
def upsert_group_category(self, group_id, category_id, profile, is_public):
745+
async def upsert_group_category(
746+
self,
747+
group_id: str,
748+
category_id: str,
749+
profile: Optional[JsonDict],
750+
is_public: Optional[bool],
751+
) -> None:
746752
"""Add/update room category for group
747753
"""
748754
insertion_values = {}
@@ -758,7 +764,7 @@ def upsert_group_category(self, group_id, category_id, profile, is_public):
758764
else:
759765
update_values["is_public"] = is_public
760766

761-
return self.db_pool.simple_upsert(
767+
await self.db_pool.simple_upsert(
762768
table="group_room_categories",
763769
keyvalues={"group_id": group_id, "category_id": category_id},
764770
values=update_values,
@@ -773,7 +779,13 @@ def remove_group_category(self, group_id, category_id):
773779
desc="remove_group_category",
774780
)
775781

776-
def upsert_group_role(self, group_id, role_id, profile, is_public):
782+
async def upsert_group_role(
783+
self,
784+
group_id: str,
785+
role_id: str,
786+
profile: Optional[JsonDict],
787+
is_public: Optional[bool],
788+
) -> None:
777789
"""Add/remove user role
778790
"""
779791
insertion_values = {}
@@ -789,7 +801,7 @@ def upsert_group_role(self, group_id, role_id, profile, is_public):
789801
else:
790802
update_values["is_public"] = is_public
791803

792-
return self.db_pool.simple_upsert(
804+
await self.db_pool.simple_upsert(
793805
table="group_roles",
794806
keyvalues={"group_id": group_id, "role_id": role_id},
795807
values=update_values,
@@ -938,10 +950,10 @@ def remove_user_from_summary(self, group_id, user_id, role_id):
938950
desc="remove_user_from_summary",
939951
)
940952

941-
def add_group_invite(self, group_id, user_id):
953+
async def add_group_invite(self, group_id: str, user_id: str) -> None:
942954
"""Record that the group server has invited a user
943955
"""
944-
return self.db_pool.simple_insert(
956+
await self.db_pool.simple_insert(
945957
table="group_invites",
946958
values={"group_id": group_id, "user_id": user_id},
947959
desc="add_group_invite",
@@ -1044,8 +1056,10 @@ def _remove_user_from_group_txn(txn):
10441056
"remove_user_from_group", _remove_user_from_group_txn
10451057
)
10461058

1047-
def add_room_to_group(self, group_id, room_id, is_public):
1048-
return self.db_pool.simple_insert(
1059+
async def add_room_to_group(
1060+
self, group_id: str, room_id: str, is_public: bool
1061+
) -> None:
1062+
await self.db_pool.simple_insert(
10491063
table="group_rooms",
10501064
values={"group_id": group_id, "room_id": room_id, "is_public": is_public},
10511065
desc="add_room_to_group",

synapse/storage/databases/main/keys.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,22 +140,28 @@ async def store_server_verify_keys(
140140
for i in invalidations:
141141
invalidate((i,))
142142

143-
def store_server_keys_json(
144-
self, server_name, key_id, from_server, ts_now_ms, ts_expires_ms, key_json_bytes
145-
):
143+
async def store_server_keys_json(
144+
self,
145+
server_name: str,
146+
key_id: str,
147+
from_server: str,
148+
ts_now_ms: int,
149+
ts_expires_ms: int,
150+
key_json_bytes: bytes,
151+
) -> None:
146152
"""Stores the JSON bytes for a set of keys from a server
147153
The JSON should be signed by the originating server, the intermediate
148154
server, and by this server. Updates the value for the
149155
(server_name, key_id, from_server) triplet if one already existed.
150156
Args:
151-
server_name (str): The name of the server.
152-
key_id (str): The identifer of the key this JSON is for.
153-
from_server (str): The server this JSON was fetched from.
154-
ts_now_ms (int): The time now in milliseconds.
155-
ts_valid_until_ms (int): The time when this json stops being valid.
156-
key_json (bytes): The encoded JSON.
157+
server_name: The name of the server.
158+
key_id: The identifer of the key this JSON is for.
159+
from_server: The server this JSON was fetched from.
160+
ts_now_ms: The time now in milliseconds.
161+
ts_valid_until_ms: The time when this json stops being valid.
162+
key_json_bytes: The encoded JSON.
157163
"""
158-
return self.db_pool.simple_upsert(
164+
await self.db_pool.simple_upsert(
159165
table="server_keys_json",
160166
keyvalues={
161167
"server_name": server_name,

synapse/storage/databases/main/media_repository.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ async def get_local_media(self, media_id: str) -> Optional[Dict[str, Any]]:
6060
desc="get_local_media",
6161
)
6262

63-
def store_local_media(
63+
async def store_local_media(
6464
self,
6565
media_id,
6666
media_type,
@@ -69,8 +69,8 @@ def store_local_media(
6969
media_length,
7070
user_id,
7171
url_cache=None,
72-
):
73-
return self.db_pool.simple_insert(
72+
) -> None:
73+
await self.db_pool.simple_insert(
7474
"local_media_repository",
7575
{
7676
"media_id": media_id,
@@ -141,10 +141,10 @@ def get_url_cache_txn(txn):
141141

142142
return self.db_pool.runInteraction("get_url_cache", get_url_cache_txn)
143143

144-
def store_url_cache(
144+
async def store_url_cache(
145145
self, url, response_code, etag, expires_ts, og, media_id, download_ts
146146
):
147-
return self.db_pool.simple_insert(
147+
await self.db_pool.simple_insert(
148148
"local_media_repository_url_cache",
149149
{
150150
"url": url,
@@ -172,7 +172,7 @@ async def get_local_media_thumbnails(self, media_id: str) -> List[Dict[str, Any]
172172
desc="get_local_media_thumbnails",
173173
)
174174

175-
def store_local_thumbnail(
175+
async def store_local_thumbnail(
176176
self,
177177
media_id,
178178
thumbnail_width,
@@ -181,7 +181,7 @@ def store_local_thumbnail(
181181
thumbnail_method,
182182
thumbnail_length,
183183
):
184-
return self.db_pool.simple_insert(
184+
await self.db_pool.simple_insert(
185185
"local_media_repository_thumbnails",
186186
{
187187
"media_id": media_id,
@@ -212,7 +212,7 @@ async def get_cached_remote_media(
212212
desc="get_cached_remote_media",
213213
)
214214

215-
def store_cached_remote_media(
215+
async def store_cached_remote_media(
216216
self,
217217
origin,
218218
media_id,
@@ -222,7 +222,7 @@ def store_cached_remote_media(
222222
upload_name,
223223
filesystem_id,
224224
):
225-
return self.db_pool.simple_insert(
225+
await self.db_pool.simple_insert(
226226
"remote_media_cache",
227227
{
228228
"media_origin": origin,
@@ -288,7 +288,7 @@ async def get_remote_media_thumbnails(
288288
desc="get_remote_media_thumbnails",
289289
)
290290

291-
def store_remote_media_thumbnail(
291+
async def store_remote_media_thumbnail(
292292
self,
293293
origin,
294294
media_id,
@@ -299,7 +299,7 @@ def store_remote_media_thumbnail(
299299
thumbnail_method,
300300
thumbnail_length,
301301
):
302-
return self.db_pool.simple_insert(
302+
await self.db_pool.simple_insert(
303303
"remote_media_cache_thumbnails",
304304
{
305305
"media_origin": origin,

synapse/storage/databases/main/openid.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33

44
class OpenIdStore(SQLBaseStore):
5-
def insert_open_id_token(self, token, ts_valid_until_ms, user_id):
6-
return self.db_pool.simple_insert(
5+
async def insert_open_id_token(
6+
self, token: str, ts_valid_until_ms: int, user_id: str
7+
) -> None:
8+
await self.db_pool.simple_insert(
79
table="open_id_tokens",
810
values={
911
"token": token,

synapse/storage/databases/main/profile.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ async def get_from_remote_profile_cache(
6666
desc="get_from_remote_profile_cache",
6767
)
6868

69-
def create_profile(self, user_localpart):
70-
return self.db_pool.simple_insert(
69+
async def create_profile(self, user_localpart: str) -> None:
70+
await self.db_pool.simple_insert(
7171
table="profiles", values={"user_id": user_localpart}, desc="create_profile"
7272
)
7373

@@ -93,13 +93,15 @@ async def set_profile_avatar_url(
9393

9494

9595
class ProfileStore(ProfileWorkerStore):
96-
def add_remote_profile_cache(self, user_id, displayname, avatar_url):
96+
async def add_remote_profile_cache(
97+
self, user_id: str, displayname: str, avatar_url: str
98+
) -> None:
9799
"""Ensure we are caching the remote user's profiles.
98100
99101
This should only be called when `is_subscribed_remote_profile_for_user`
100102
would return true for the user.
101103
"""
102-
return self.db_pool.simple_upsert(
104+
await self.db_pool.simple_upsert(
103105
table="remote_profile_cache",
104106
keyvalues={"user_id": user_id},
105107
values={

0 commit comments

Comments
 (0)