Convert remote key resource REST layer to async/await. (#7020)
							parent
							
								
									78a15b1f9d
								
							
						
					
					
						commit
						87972f07e5
					
				| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Port `synapse.rest.keys` to async/await.
 | 
			
		||||
| 
						 | 
				
			
			@ -18,8 +18,6 @@ from typing import Dict, Set
 | 
			
		|||
from canonicaljson import encode_canonical_json, json
 | 
			
		||||
from signedjson.sign import sign_json
 | 
			
		||||
 | 
			
		||||
from twisted.internet import defer
 | 
			
		||||
 | 
			
		||||
from synapse.api.errors import Codes, SynapseError
 | 
			
		||||
from synapse.crypto.keyring import ServerKeyFetcher
 | 
			
		||||
from synapse.http.server import (
 | 
			
		||||
| 
						 | 
				
			
			@ -125,8 +123,7 @@ class RemoteKey(DirectServeResource):
 | 
			
		|||
 | 
			
		||||
        await self.query_keys(request, query, query_remote_on_cache_miss=True)
 | 
			
		||||
 | 
			
		||||
    @defer.inlineCallbacks
 | 
			
		||||
    def query_keys(self, request, query, query_remote_on_cache_miss=False):
 | 
			
		||||
    async def query_keys(self, request, query, query_remote_on_cache_miss=False):
 | 
			
		||||
        logger.info("Handling query for keys %r", query)
 | 
			
		||||
 | 
			
		||||
        store_queries = []
 | 
			
		||||
| 
						 | 
				
			
			@ -143,7 +140,7 @@ class RemoteKey(DirectServeResource):
 | 
			
		|||
            for key_id in key_ids:
 | 
			
		||||
                store_queries.append((server_name, key_id, None))
 | 
			
		||||
 | 
			
		||||
        cached = yield self.store.get_server_keys_json(store_queries)
 | 
			
		||||
        cached = await self.store.get_server_keys_json(store_queries)
 | 
			
		||||
 | 
			
		||||
        json_results = set()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -215,8 +212,8 @@ class RemoteKey(DirectServeResource):
 | 
			
		|||
                    json_results.add(bytes(result["key_json"]))
 | 
			
		||||
 | 
			
		||||
        if cache_misses and query_remote_on_cache_miss:
 | 
			
		||||
            yield self.fetcher.get_keys(cache_misses)
 | 
			
		||||
            yield self.query_keys(request, query, query_remote_on_cache_miss=False)
 | 
			
		||||
            await self.fetcher.get_keys(cache_misses)
 | 
			
		||||
            await self.query_keys(request, query, query_remote_on_cache_miss=False)
 | 
			
		||||
        else:
 | 
			
		||||
            signed_keys = []
 | 
			
		||||
            for key_json in json_results:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue