forked from MirrorHub/synapse
Finish renaming "context" to "room_id" in federation codebase
This commit is contained in:
parent
2408c4b0a4
commit
5fed042640
7 changed files with 62 additions and 99 deletions
|
@ -256,23 +256,21 @@ class ReplicationLayer(object):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def get_state_for_context(self, destination, context, event_id):
|
def get_state_for_room(self, destination, room_id, event_id):
|
||||||
"""Requests all of the `current` state PDUs for a given context from
|
"""Requests all of the `current` state PDUs for a given room from
|
||||||
a remote home server.
|
a remote home server.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
destination (str): The remote homeserver to query for the state.
|
destination (str): The remote homeserver to query for the state.
|
||||||
context (str): The context we're interested in.
|
room_id (str): The id of the room we're interested in.
|
||||||
event_id (str): The id of the event we want the state at.
|
event_id (str): The id of the event we want the state at.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Deferred: Results in a list of PDUs.
|
Deferred: Results in a list of PDUs.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
result = yield self.transport_layer.get_context_state(
|
result = yield self.transport_layer.get_room_state(
|
||||||
destination,
|
destination, room_id, event_id=event_id,
|
||||||
context,
|
|
||||||
event_id=event_id,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
pdus = [
|
pdus = [
|
||||||
|
@ -288,9 +286,9 @@ class ReplicationLayer(object):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def get_event_auth(self, destination, context, event_id):
|
def get_event_auth(self, destination, room_id, event_id):
|
||||||
res = yield self.transport_layer.get_event_auth(
|
res = yield self.transport_layer.get_event_auth(
|
||||||
destination, context, event_id,
|
destination, room_id, event_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
auth_chain = [
|
auth_chain = [
|
||||||
|
@ -304,9 +302,9 @@ class ReplicationLayer(object):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def on_backfill_request(self, origin, context, versions, limit):
|
def on_backfill_request(self, origin, room_id, versions, limit):
|
||||||
pdus = yield self.handler.on_backfill_request(
|
pdus = yield self.handler.on_backfill_request(
|
||||||
origin, context, versions, limit
|
origin, room_id, versions, limit
|
||||||
)
|
)
|
||||||
|
|
||||||
defer.returnValue((200, self._transaction_from_pdus(pdus).get_dict()))
|
defer.returnValue((200, self._transaction_from_pdus(pdus).get_dict()))
|
||||||
|
@ -380,12 +378,10 @@ class ReplicationLayer(object):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def on_context_state_request(self, origin, context, event_id):
|
def on_context_state_request(self, origin, room_id, event_id):
|
||||||
if event_id:
|
if event_id:
|
||||||
pdus = yield self.handler.get_state_for_pdu(
|
pdus = yield self.handler.get_state_for_pdu(
|
||||||
origin,
|
origin, room_id, event_id,
|
||||||
context,
|
|
||||||
event_id,
|
|
||||||
)
|
)
|
||||||
auth_chain = yield self.store.get_auth_chain(
|
auth_chain = yield self.store.get_auth_chain(
|
||||||
[pdu.event_id for pdu in pdus]
|
[pdu.event_id for pdu in pdus]
|
||||||
|
@ -413,7 +409,7 @@ class ReplicationLayer(object):
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def on_pull_request(self, origin, versions):
|
def on_pull_request(self, origin, versions):
|
||||||
raise NotImplementedError("Pull transacions not implemented")
|
raise NotImplementedError("Pull transactions not implemented")
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_query_request(self, query_type, args):
|
def on_query_request(self, query_type, args):
|
||||||
|
@ -422,30 +418,21 @@ class ReplicationLayer(object):
|
||||||
defer.returnValue((200, response))
|
defer.returnValue((200, response))
|
||||||
else:
|
else:
|
||||||
defer.returnValue(
|
defer.returnValue(
|
||||||
(404, "No handler for Query type '%s'" % (query_type, ))
|
(404, "No handler for Query type '%s'" % (query_type,))
|
||||||
)
|
)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_make_join_request(self, context, user_id):
|
def on_make_join_request(self, room_id, user_id):
|
||||||
pdu = yield self.handler.on_make_join_request(context, user_id)
|
pdu = yield self.handler.on_make_join_request(room_id, user_id)
|
||||||
time_now = self._clock.time_msec()
|
time_now = self._clock.time_msec()
|
||||||
defer.returnValue({
|
defer.returnValue({"event": pdu.get_pdu_json(time_now)})
|
||||||
"event": pdu.get_pdu_json(time_now),
|
|
||||||
})
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_invite_request(self, origin, content):
|
def on_invite_request(self, origin, content):
|
||||||
pdu = self.event_from_pdu_json(content)
|
pdu = self.event_from_pdu_json(content)
|
||||||
ret_pdu = yield self.handler.on_invite_request(origin, pdu)
|
ret_pdu = yield self.handler.on_invite_request(origin, pdu)
|
||||||
time_now = self._clock.time_msec()
|
time_now = self._clock.time_msec()
|
||||||
defer.returnValue(
|
defer.returnValue((200, {"event": ret_pdu.get_pdu_json(time_now)}))
|
||||||
(
|
|
||||||
200,
|
|
||||||
{
|
|
||||||
"event": ret_pdu.get_pdu_json(time_now),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_send_join_request(self, origin, content):
|
def on_send_join_request(self, origin, content):
|
||||||
|
@ -462,26 +449,17 @@ class ReplicationLayer(object):
|
||||||
}))
|
}))
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_event_auth(self, origin, context, event_id):
|
def on_event_auth(self, origin, room_id, event_id):
|
||||||
time_now = self._clock.time_msec()
|
time_now = self._clock.time_msec()
|
||||||
auth_pdus = yield self.handler.on_event_auth(event_id)
|
auth_pdus = yield self.handler.on_event_auth(event_id)
|
||||||
defer.returnValue(
|
defer.returnValue((200, {
|
||||||
(
|
"auth_chain": [a.get_pdu_json(time_now) for a in auth_pdus],
|
||||||
200,
|
}))
|
||||||
{
|
|
||||||
"auth_chain": [
|
|
||||||
a.get_pdu_json(time_now) for a in auth_pdus
|
|
||||||
],
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def make_join(self, destination, context, user_id):
|
def make_join(self, destination, room_id, user_id):
|
||||||
ret = yield self.transport_layer.make_join(
|
ret = yield self.transport_layer.make_join(
|
||||||
destination=destination,
|
destination, room_id, user_id
|
||||||
context=context,
|
|
||||||
user_id=user_id,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
pdu_dict = ret["event"]
|
pdu_dict = ret["event"]
|
||||||
|
@ -494,10 +472,10 @@ class ReplicationLayer(object):
|
||||||
def send_join(self, destination, pdu):
|
def send_join(self, destination, pdu):
|
||||||
time_now = self._clock.time_msec()
|
time_now = self._clock.time_msec()
|
||||||
_, content = yield self.transport_layer.send_join(
|
_, content = yield self.transport_layer.send_join(
|
||||||
destination,
|
destination=destination,
|
||||||
pdu.room_id,
|
room_id=pdu.room_id,
|
||||||
pdu.event_id,
|
event_id=pdu.event_id,
|
||||||
pdu.get_pdu_json(time_now),
|
content=pdu.get_pdu_json(time_now),
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.debug("Got content: %s", content)
|
logger.debug("Got content: %s", content)
|
||||||
|
@ -507,9 +485,6 @@ class ReplicationLayer(object):
|
||||||
for p in content.get("state", [])
|
for p in content.get("state", [])
|
||||||
]
|
]
|
||||||
|
|
||||||
# FIXME: We probably want to do something with the auth_chain given
|
|
||||||
# to us
|
|
||||||
|
|
||||||
auth_chain = [
|
auth_chain = [
|
||||||
self.event_from_pdu_json(p, outlier=True)
|
self.event_from_pdu_json(p, outlier=True)
|
||||||
for p in content.get("auth_chain", [])
|
for p in content.get("auth_chain", [])
|
||||||
|
@ -523,11 +498,11 @@ class ReplicationLayer(object):
|
||||||
})
|
})
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def send_invite(self, destination, context, event_id, pdu):
|
def send_invite(self, destination, room_id, event_id, pdu):
|
||||||
time_now = self._clock.time_msec()
|
time_now = self._clock.time_msec()
|
||||||
code, content = yield self.transport_layer.send_invite(
|
code, content = yield self.transport_layer.send_invite(
|
||||||
destination=destination,
|
destination=destination,
|
||||||
context=context,
|
room_id=room_id,
|
||||||
event_id=event_id,
|
event_id=event_id,
|
||||||
content=pdu.get_pdu_json(time_now),
|
content=pdu.get_pdu_json(time_now),
|
||||||
)
|
)
|
||||||
|
@ -657,7 +632,7 @@ class ReplicationLayer(object):
|
||||||
"_handle_new_pdu getting state for %s",
|
"_handle_new_pdu getting state for %s",
|
||||||
pdu.room_id
|
pdu.room_id
|
||||||
)
|
)
|
||||||
state, auth_chain = yield self.get_state_for_context(
|
state, auth_chain = yield self.get_state_for_room(
|
||||||
origin, pdu.room_id, pdu.event_id,
|
origin, pdu.room_id, pdu.event_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -830,14 +805,15 @@ class _TransactionQueue(object):
|
||||||
pending_failures = self.pending_failures_by_dest.pop(destination, [])
|
pending_failures = self.pending_failures_by_dest.pop(destination, [])
|
||||||
|
|
||||||
if pending_pdus:
|
if pending_pdus:
|
||||||
logger.info("TX [%s] len(pending_pdus_by_dest[dest]) = %d", destination, len(pending_pdus))
|
logger.info("TX [%s] len(pending_pdus_by_dest[dest]) = %d",
|
||||||
|
destination, len(pending_pdus))
|
||||||
|
|
||||||
if not pending_pdus and not pending_edus and not pending_failures:
|
if not pending_pdus and not pending_edus and not pending_failures:
|
||||||
return
|
return
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"TX [%s] Attempting new transaction "
|
"TX [%s] Attempting new transaction"
|
||||||
"(pdus: %d, edus: %d, failures: %d)",
|
" (pdus: %d, edus: %d, failures: %d)",
|
||||||
destination,
|
destination,
|
||||||
len(pending_pdus),
|
len(pending_pdus),
|
||||||
len(pending_edus),
|
len(pending_edus),
|
||||||
|
|
|
@ -29,9 +29,9 @@ class TransportLayerClient(object):
|
||||||
"""Sends federation HTTP requests to other servers"""
|
"""Sends federation HTTP requests to other servers"""
|
||||||
|
|
||||||
@log_function
|
@log_function
|
||||||
def get_context_state(self, destination, context, event_id):
|
def get_room_state(self, destination, room_id, event_id):
|
||||||
""" Requests all state for a given context (i.e. room) from the
|
""" Requests all state for a given room from the given server at the
|
||||||
given server.
|
given event.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
destination (str): The host name of the remote home server we want
|
destination (str): The host name of the remote home server we want
|
||||||
|
@ -42,10 +42,10 @@ class TransportLayerClient(object):
|
||||||
Returns:
|
Returns:
|
||||||
Deferred: Results in a dict received from the remote homeserver.
|
Deferred: Results in a dict received from the remote homeserver.
|
||||||
"""
|
"""
|
||||||
logger.debug("get_context_state dest=%s, context=%s",
|
logger.debug("get_room_state dest=%s, room=%s",
|
||||||
destination, context)
|
destination, room_id)
|
||||||
|
|
||||||
path = PREFIX + "/state/%s/" % context
|
path = PREFIX + "/state/%s/" % room_id
|
||||||
return self.client.get_json(
|
return self.client.get_json(
|
||||||
destination, path=path, args={"event_id": event_id},
|
destination, path=path, args={"event_id": event_id},
|
||||||
)
|
)
|
||||||
|
@ -69,13 +69,13 @@ class TransportLayerClient(object):
|
||||||
return self.client.get_json(destination, path=path)
|
return self.client.get_json(destination, path=path)
|
||||||
|
|
||||||
@log_function
|
@log_function
|
||||||
def backfill(self, dest, context, event_tuples, limit):
|
def backfill(self, destination, room_id, event_tuples, limit):
|
||||||
""" Requests `limit` previous PDUs in a given context before list of
|
""" Requests `limit` previous PDUs in a given context before list of
|
||||||
PDUs.
|
PDUs.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
dest (str)
|
dest (str)
|
||||||
context (str)
|
room_id (str)
|
||||||
event_tuples (list)
|
event_tuples (list)
|
||||||
limt (int)
|
limt (int)
|
||||||
|
|
||||||
|
@ -83,15 +83,15 @@ class TransportLayerClient(object):
|
||||||
Deferred: Results in a dict received from the remote homeserver.
|
Deferred: Results in a dict received from the remote homeserver.
|
||||||
"""
|
"""
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"backfill dest=%s, context=%s, event_tuples=%s, limit=%s",
|
"backfill dest=%s, room_id=%s, event_tuples=%s, limit=%s",
|
||||||
dest, context, repr(event_tuples), str(limit)
|
destination, room_id, repr(event_tuples), str(limit)
|
||||||
)
|
)
|
||||||
|
|
||||||
if not event_tuples:
|
if not event_tuples:
|
||||||
# TODO: raise?
|
# TODO: raise?
|
||||||
return
|
return
|
||||||
|
|
||||||
path = PREFIX + "/backfill/%s/" % (context,)
|
path = PREFIX + "/backfill/%s/" % (room_id,)
|
||||||
|
|
||||||
args = {
|
args = {
|
||||||
"v": event_tuples,
|
"v": event_tuples,
|
||||||
|
@ -159,8 +159,8 @@ class TransportLayerClient(object):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def make_join(self, destination, context, user_id, retry_on_dns_fail=True):
|
def make_join(self, destination, room_id, user_id, retry_on_dns_fail=True):
|
||||||
path = PREFIX + "/make_join/%s/%s" % (context, user_id,)
|
path = PREFIX + "/make_join/%s/%s" % (room_id, user_id)
|
||||||
|
|
||||||
response = yield self.client.get_json(
|
response = yield self.client.get_json(
|
||||||
destination=destination,
|
destination=destination,
|
||||||
|
@ -172,11 +172,8 @@ class TransportLayerClient(object):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def send_join(self, destination, context, event_id, content):
|
def send_join(self, destination, room_id, event_id, content):
|
||||||
path = PREFIX + "/send_join/%s/%s" % (
|
path = PREFIX + "/send_join/%s/%s" % (room_id, event_id)
|
||||||
context,
|
|
||||||
event_id,
|
|
||||||
)
|
|
||||||
|
|
||||||
code, content = yield self.client.put_json(
|
code, content = yield self.client.put_json(
|
||||||
destination=destination,
|
destination=destination,
|
||||||
|
@ -191,11 +188,8 @@ class TransportLayerClient(object):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def send_invite(self, destination, context, event_id, content):
|
def send_invite(self, destination, room_id, event_id, content):
|
||||||
path = PREFIX + "/invite/%s/%s" % (
|
path = PREFIX + "/invite/%s/%s" % (room_id, event_id)
|
||||||
context,
|
|
||||||
event_id,
|
|
||||||
)
|
|
||||||
|
|
||||||
code, content = yield self.client.put_json(
|
code, content = yield self.client.put_json(
|
||||||
destination=destination,
|
destination=destination,
|
||||||
|
@ -210,11 +204,8 @@ class TransportLayerClient(object):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def get_event_auth(self, destination, context, event_id):
|
def get_event_auth(self, destination, room_id, event_id):
|
||||||
path = PREFIX + "/event_auth/%s/%s" % (
|
path = PREFIX + "/event_auth/%s/%s" % (room_id, event_id)
|
||||||
context,
|
|
||||||
event_id,
|
|
||||||
)
|
|
||||||
|
|
||||||
response = yield self.client.get_json(
|
response = yield self.client.get_json(
|
||||||
destination=destination,
|
destination=destination,
|
||||||
|
|
|
@ -285,7 +285,6 @@ class TransportLayerServer(object):
|
||||||
|
|
||||||
defer.returnValue((code, response))
|
defer.returnValue((code, response))
|
||||||
|
|
||||||
|
|
||||||
@log_function
|
@log_function
|
||||||
def _on_backfill_request(self, origin, context, v_list, limits):
|
def _on_backfill_request(self, origin, context, v_list, limits):
|
||||||
if not limits:
|
if not limits:
|
||||||
|
|
|
@ -144,7 +144,5 @@ class BaseHandler(object):
|
||||||
yield self.notifier.on_new_room_event(event, extra_users=extra_users)
|
yield self.notifier.on_new_room_event(event, extra_users=extra_users)
|
||||||
|
|
||||||
yield federation_handler.handle_new_event(
|
yield federation_handler.handle_new_event(
|
||||||
event,
|
event, destinations=destinations,
|
||||||
None,
|
|
||||||
destinations=destinations,
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -75,14 +75,14 @@ class FederationHandler(BaseHandler):
|
||||||
|
|
||||||
@log_function
|
@log_function
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def handle_new_event(self, event, snapshot, destinations):
|
def handle_new_event(self, event, destinations):
|
||||||
""" Takes in an event from the client to server side, that has already
|
""" Takes in an event from the client to server side, that has already
|
||||||
been authed and handled by the state module, and sends it to any
|
been authed and handled by the state module, and sends it to any
|
||||||
remote home servers that may be interested.
|
remote home servers that may be interested.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
event
|
event: The event to send
|
||||||
snapshot (.storage.Snapshot): THe snapshot the event happened after
|
destinations: A list of destinations to send it to
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Deferred: Resolved when it has successfully been queued for
|
Deferred: Resolved when it has successfully been queued for
|
||||||
|
@ -154,7 +154,7 @@ class FederationHandler(BaseHandler):
|
||||||
replication = self.replication_layer
|
replication = self.replication_layer
|
||||||
|
|
||||||
if not state:
|
if not state:
|
||||||
state, auth_chain = yield replication.get_state_for_context(
|
state, auth_chain = yield replication.get_state_for_room(
|
||||||
origin, context=event.room_id, event_id=event.event_id,
|
origin, context=event.room_id, event_id=event.event_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -281,7 +281,7 @@ class FederationHandler(BaseHandler):
|
||||||
"""
|
"""
|
||||||
pdu = yield self.replication_layer.send_invite(
|
pdu = yield self.replication_layer.send_invite(
|
||||||
destination=target_host,
|
destination=target_host,
|
||||||
context=event.room_id,
|
room_id=event.room_id,
|
||||||
event_id=event.event_id,
|
event_id=event.event_id,
|
||||||
pdu=event
|
pdu=event
|
||||||
)
|
)
|
||||||
|
|
|
@ -72,7 +72,6 @@ class MatrixFederationHttpClient(object):
|
||||||
requests.
|
requests.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, hs):
|
def __init__(self, hs):
|
||||||
self.hs = hs
|
self.hs = hs
|
||||||
self.signing_key = hs.config.signing_key[0]
|
self.signing_key = hs.config.signing_key[0]
|
||||||
|
|
|
@ -223,7 +223,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
|
||||||
yield room_handler.change_membership(event, context)
|
yield room_handler.change_membership(event, context)
|
||||||
|
|
||||||
self.federation.handle_new_event.assert_called_once_with(
|
self.federation.handle_new_event.assert_called_once_with(
|
||||||
event, None, destinations=set()
|
event, destinations=set()
|
||||||
)
|
)
|
||||||
|
|
||||||
self.datastore.persist_event.assert_called_once_with(
|
self.datastore.persist_event.assert_called_once_with(
|
||||||
|
@ -301,7 +301,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
|
||||||
yield room_handler.change_membership(event, context)
|
yield room_handler.change_membership(event, context)
|
||||||
|
|
||||||
self.federation.handle_new_event.assert_called_once_with(
|
self.federation.handle_new_event.assert_called_once_with(
|
||||||
event, None, destinations=set(['red'])
|
event, destinations=set(['red'])
|
||||||
)
|
)
|
||||||
|
|
||||||
self.datastore.persist_event.assert_called_once_with(
|
self.datastore.persist_event.assert_called_once_with(
|
||||||
|
|
Loading…
Reference in a new issue