Store the rejected reason in (Frozen)Event structs

This commit is contained in:
Paul "LeoNerd" Evans 2015-03-25 17:26:32 +00:00
parent 033a517feb
commit 1b988b051b
2 changed files with 12 additions and 4 deletions

View File

@ -46,9 +46,10 @@ def _event_dict_property(key):
class EventBase(object): class EventBase(object):
def __init__(self, event_dict, signatures={}, unsigned={}, def __init__(self, event_dict, signatures={}, unsigned={},
internal_metadata_dict={}): internal_metadata_dict={}, rejected_reason=None):
self.signatures = signatures self.signatures = signatures
self.unsigned = unsigned self.unsigned = unsigned
self.rejected_reason = rejected_reason
self._event_dict = event_dict self._event_dict = event_dict
@ -109,7 +110,7 @@ class EventBase(object):
class FrozenEvent(EventBase): class FrozenEvent(EventBase):
def __init__(self, event_dict, internal_metadata_dict={}): def __init__(self, event_dict, internal_metadata_dict={}, rejected_reason=None):
event_dict = dict(event_dict) event_dict = dict(event_dict)
# Signatures is a dict of dicts, and this is faster than doing a # Signatures is a dict of dicts, and this is faster than doing a
@ -128,6 +129,7 @@ class FrozenEvent(EventBase):
signatures=signatures, signatures=signatures,
unsigned=unsigned, unsigned=unsigned,
internal_metadata_dict=internal_metadata_dict, internal_metadata_dict=internal_metadata_dict,
rejected_reason=rejected_reason,
) )
@staticmethod @staticmethod

View File

@ -784,6 +784,7 @@ class SQLBaseStore(object):
txn, internal_metadata, js, redacted, txn, internal_metadata, js, redacted,
check_redacted=check_redacted, check_redacted=check_redacted,
get_prev_content=get_prev_content, get_prev_content=get_prev_content,
rejected_reason=rejected_reason,
) )
cache[(check_redacted, get_prev_content, allow_rejected)] = result cache[(check_redacted, get_prev_content, allow_rejected)] = result
return result return result
@ -791,7 +792,8 @@ class SQLBaseStore(object):
return None return None
def _get_event_from_row_txn(self, txn, internal_metadata, js, redacted, def _get_event_from_row_txn(self, txn, internal_metadata, js, redacted,
check_redacted=True, get_prev_content=False): check_redacted=True, get_prev_content=False,
rejected_reason=None):
start_time = time.time() * 1000 start_time = time.time() * 1000
@ -806,7 +808,11 @@ class SQLBaseStore(object):
internal_metadata = json.loads(internal_metadata) internal_metadata = json.loads(internal_metadata)
start_time = update_counter("decode_internal", start_time) start_time = update_counter("decode_internal", start_time)
ev = FrozenEvent(d, internal_metadata_dict=internal_metadata) ev = FrozenEvent(
d,
internal_metadata_dict=internal_metadata,
rejected_reason=rejected_reason,
)
start_time = update_counter("build_frozen_event", start_time) start_time = update_counter("build_frozen_event", start_time)
if check_redacted and redacted: if check_redacted and redacted: