Clean up room key tracing

This commit is contained in:
Jorik Schellekens 2019-07-08 14:32:00 +01:00
parent 1ed790d67a
commit 01229a4af9
2 changed files with 32 additions and 12 deletions

View file

@ -179,7 +179,6 @@ class E2eRoomKeysHandler(object):
user_id, version, room_id, session_id, session
)
@opentracing.trace_defered_function
@defer.inlineCallbacks
def _upload_room_key(self, user_id, version, room_id, session_id, room_key):
"""Upload a given room_key for a given room and session into a given
@ -192,7 +191,14 @@ class E2eRoomKeysHandler(object):
session_id(str): the session whose room_key we're setting
room_key(dict): the room_key being set
"""
opentracing.log_kv(
{
"message": "Trying to upload room key",
"room_id": room_id,
"session_id": session_id,
"user_id": user_id,
}
)
# get the room_key for this particular row
current_room_key = None
try:
@ -201,14 +207,23 @@ class E2eRoomKeysHandler(object):
)
except StoreError as e:
if e.code == 404:
pass
opentracing.log_kv(
{
"message": "Room key not found.",
"room_id": room_id,
"user_id": user_id,
}
)
else:
raise
if self._should_replace_room_key(current_room_key, room_key):
opentracing.log_kv({"message": "Replacing room key."})
yield self.store.set_e2e_room_key(
user_id, version, room_id, session_id, room_key
)
else:
opentracing.log_kv({"message": "Not replacing room_key."})
@staticmethod
def _should_replace_room_key(current_room_key, room_key):

View file

@ -18,13 +18,12 @@ import json
from twisted.internet import defer
from synapse.api.errors import StoreError
from synapse.logging.opentracing import trace_defered_function
import synapse.logging.opentracing as opentracing
from ._base import SQLBaseStore
class EndToEndRoomKeyStore(SQLBaseStore):
@trace_defered_function
@defer.inlineCallbacks
def get_e2e_room_key(self, user_id, version, room_id, session_id):
"""Get the encrypted E2E room key for a given session from a given
@ -65,7 +64,6 @@ class EndToEndRoomKeyStore(SQLBaseStore):
return row
@trace_defered_function
@defer.inlineCallbacks
def set_e2e_room_key(self, user_id, version, room_id, session_id, room_key):
"""Replaces or inserts the encrypted E2E room key for a given session in
@ -97,8 +95,16 @@ class EndToEndRoomKeyStore(SQLBaseStore):
},
lock=False,
)
opentracing.log_kv(
{
"message": "Set room key",
"room_id": room_id,
"session_id": session_id,
"room_key": room_key,
}
)
@trace_defered_function
@opentracing.trace_defered_function
@defer.inlineCallbacks
def get_e2e_room_keys(self, user_id, version, room_id=None, session_id=None):
"""Bulk get the E2E room keys for a given backup, optionally filtered to a given
@ -157,7 +163,7 @@ class EndToEndRoomKeyStore(SQLBaseStore):
return sessions
@trace_defered_function
@opentracing.trace_defered_function
@defer.inlineCallbacks
def delete_e2e_room_keys(self, user_id, version, room_id=None, session_id=None):
"""Bulk delete the E2E room keys for a given backup, optionally filtered to a given
@ -199,7 +205,6 @@ class EndToEndRoomKeyStore(SQLBaseStore):
raise StoreError(404, "No current backup version")
return row[0]
@trace_defered_function
def get_e2e_room_keys_version_info(self, user_id, version=None):
"""Get info metadata about a version of our room_keys backup.
@ -242,7 +247,7 @@ class EndToEndRoomKeyStore(SQLBaseStore):
"get_e2e_room_keys_version_info", _get_e2e_room_keys_version_info_txn
)
@trace_defered_function
@opentracing.trace_defered_function
def create_e2e_room_keys_version(self, user_id, info):
"""Atomically creates a new version of this user's e2e_room_keys store
with the given version info.
@ -283,7 +288,7 @@ class EndToEndRoomKeyStore(SQLBaseStore):
"create_e2e_room_keys_version_txn", _create_e2e_room_keys_version_txn
)
@trace_defered_function
@opentracing.trace_defered_function
def update_e2e_room_keys_version(self, user_id, version, info):
"""Update a given backup version
@ -300,7 +305,7 @@ class EndToEndRoomKeyStore(SQLBaseStore):
desc="update_e2e_room_keys_version",
)
@trace_defered_function
@opentracing.trace_defered_function
def delete_e2e_room_keys_version(self, user_id, version=None):
"""Delete a given backup version of the user's room keys.
Doesn't delete their actual key data.