16
16
17
17
import itertools
18
18
import logging
19
+ from typing import Iterable , Tuple
19
20
20
21
from signedjson .key import decode_verify_key_bytes
21
22
@@ -88,12 +89,17 @@ def _txn(txn):
88
89
89
90
return self .db_pool .runInteraction ("get_server_verify_keys" , _txn )
90
91
91
- def store_server_verify_keys (self , from_server , ts_added_ms , verify_keys ):
92
+ async def store_server_verify_keys (
93
+ self ,
94
+ from_server : str ,
95
+ ts_added_ms : int ,
96
+ verify_keys : Iterable [Tuple [str , str , FetchKeyResult ]],
97
+ ) -> None :
92
98
"""Stores NACL verification keys for remote servers.
93
99
Args:
94
- from_server (str) : Where the verification keys were looked up
95
- ts_added_ms (int) : The time to record that the key was added
96
- verify_keys (iterable[tuple[str, str, FetchKeyResult]]) :
100
+ from_server: Where the verification keys were looked up
101
+ ts_added_ms: The time to record that the key was added
102
+ verify_keys:
97
103
keys to be stored. Each entry is a triplet of
98
104
(server_name, key_id, key).
99
105
"""
@@ -115,13 +121,7 @@ def store_server_verify_keys(self, from_server, ts_added_ms, verify_keys):
115
121
# param, which is itself the 2-tuple (server_name, key_id).
116
122
invalidations .append ((server_name , key_id ))
117
123
118
- def _invalidate (res ):
119
- f = self ._get_server_verify_key .invalidate
120
- for i in invalidations :
121
- f ((i ,))
122
- return res
123
-
124
- return self .db_pool .runInteraction (
124
+ await self .db_pool .runInteraction (
125
125
"store_server_verify_keys" ,
126
126
self .db_pool .simple_upsert_many_txn ,
127
127
table = "server_signature_keys" ,
@@ -134,7 +134,11 @@ def _invalidate(res):
134
134
"verify_key" ,
135
135
),
136
136
value_values = value_values ,
137
- ).addCallback (_invalidate )
137
+ )
138
+
139
+ invalidate = self ._get_server_verify_key .invalidate
140
+ for i in invalidations :
141
+ invalidate ((i ,))
138
142
139
143
def store_server_keys_json (
140
144
self , server_name , key_id , from_server , ts_now_ms , ts_expires_ms , key_json_bytes
0 commit comments