private async Task <ClusterInfo> SendGossipAsync(ClusterInfo clusterInfo, EndPoint server, DateTime deadline) { var request = new GossipRequest { Info = ClusterInfo.ToGrpcClusterInfo(clusterInfo), Server = new GossipEndPoint(server.GetHost(), (uint)server.GetPort()) }; var clusterInfoDto = await _gossipClient.UpdateAsync(request, deadline : deadline.ToUniversalTime()); return(ClusterInfo.FromGrpcClusterInfo(clusterInfoDto)); }
private async Task SendPrepareOkAsync(int view, Guid serverId, EndPoint serverHttpEndPoint, int epochNumber, long epochPosition, Guid epochId, Guid epochLeaderInstanceId, long lastCommitPosition, long writerCheckpoint, long chaserCheckpoint, int nodePriority, ClusterInfo clusterInfo, DateTime deadline) { var request = new PrepareOkRequest { View = view, ServerId = Uuid.FromGuid(serverId).ToDto(), ServerHttp = new GossipEndPoint(serverHttpEndPoint.GetHost(), (uint)serverHttpEndPoint.GetPort()), EpochNumber = epochNumber, EpochPosition = epochPosition, EpochId = Uuid.FromGuid(epochId).ToDto(), EpochLeaderInstanceId = Uuid.FromGuid(epochLeaderInstanceId).ToDto(), LastCommitPosition = lastCommitPosition, WriterCheckpoint = writerCheckpoint, ChaserCheckpoint = chaserCheckpoint, NodePriority = nodePriority, ClusterInfo = ClusterInfo.ToGrpcClusterInfo(clusterInfo) }; await _electionsClient.PrepareOkAsync(request, deadline : deadline.ToUniversalTime()); }