Got itest working for get peer by address (#1364)

This commit is contained in:
Jonathan Zernik 2021-09-20 15:13:29 -07:00 committed by GitHub
parent c2533d5a1c
commit 3df4ec3927
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 45 additions and 0 deletions

View file

@ -497,6 +497,17 @@ def test_create_peer(admin_stub):
]
assert "fake_host" in peer_hosts
# Get the new peer by address
get_peer_by_address_response = admin_stub.GetPeerByAddress(
squeak_admin_pb2.GetPeerByAddressRequest(
peer_address=squeak_admin_pb2.PeerAddress(
host="fake_host",
port=1234,
)
)
)
assert get_peer_by_address_response.squeak_peer.peer_name == "fake_peer_name"
def test_create_peer_empty_name(admin_stub):
# Try to create a new signing profile with an empty name

View file

@ -172,6 +172,10 @@ service SqueakAdmin {
*/
rpc GetPeer (GetPeerRequest) returns (GetPeerReply) {}
/** sqkadmin: `getpeerbyaddress`
*/
rpc GetPeerByAddress (GetPeerByAddressRequest) returns (GetPeerByAddressReply) {}
/** sqkadmin: `getpeers`
*/
rpc GetPeers (GetPeersRequest) returns (GetPeersReply) {}
@ -695,6 +699,16 @@ message GetPeerReply {
SqueakPeer squeak_peer = 1;
}
message GetPeerByAddressRequest {
/// Peer address
PeerAddress peer_address = 1;
}
message GetPeerByAddressReply {
/// The peer
SqueakPeer squeak_peer = 1;
}
message GetPeersRequest {
}

View file

@ -531,6 +531,20 @@ class SqueakAdminServerHandler(object):
squeak_peer=squeak_peer_msg,
)
def handle_get_squeak_peer_by_address(self, request):
peer_address = message_to_peer_address(request.peer_address)
logger.info(
"Handle get squeak peer with address: {}".format(peer_address))
squeak_peer = self.squeak_controller.get_peer_by_address(peer_address)
if squeak_peer is None:
return squeak_admin_pb2.GetPeerReply(
squeak_peer=None,
)
squeak_peer_msg = squeak_peer_to_message(squeak_peer)
return squeak_admin_pb2.GetPeerByAddressReply(
squeak_peer=squeak_peer_msg,
)
def handle_get_squeak_peers(self, request):
logger.info("Handle get squeak peers")
squeak_peers = self.squeak_controller.get_peers()

View file

@ -184,6 +184,9 @@ class SqueakAdminServerServicer(squeak_admin_pb2_grpc.SqueakAdminServicer):
return squeak_admin_pb2.GetPeerReply()
return reply
def GetPeerByAddress(self, request, context):
return self.handler.handle_get_squeak_peer_by_address(request)
def GetPeers(self, request, context):
return self.handler.handle_get_squeak_peers(request)

View file

@ -369,6 +369,9 @@ class SqueakController:
def get_peer(self, peer_id: int) -> Optional[SqueakPeer]:
return self.squeak_db.get_peer(peer_id)
def get_peer_by_address(self, peer_address: PeerAddress) -> Optional[SqueakPeer]:
return self.squeak_db.get_peer_by_address(peer_address)
def get_peers(self):
return self.squeak_db.get_peers()