Ejemplo n.º 1
0
 public override Task <Empty> PrepareOk(PrepareOkRequest request, ServerCallContext context)
 {
     _bus.Publish(new ElectionMessage.PrepareOk(
                      request.View,
                      Uuid.FromDto(request.ServerId).ToGuid(),
                      new IPEndPoint(IPAddress.Parse(request.ServerInternalHttp.Address), (int)request.ServerInternalHttp.Port),
                      request.EpochNumber,
                      request.EpochPosition,
                      Uuid.FromDto(request.EpochId).ToGuid(),
                      request.LastCommitPosition,
                      request.WriterCheckpoint,
                      request.ChaserCheckpoint,
                      request.NodePriority));
     return(EmptyResult);
 }
 private async Task SendPrepareOkAsync(int view, Guid serverId, IPEndPoint serverInternalHttp, int epochNumber,
                                       long epochPosition, Guid epochId, long lastCommitPosition, long writerCheckpoint, long chaserCheckpoint,
                                       int nodePriority, DateTime deadline)
 {
     var request = new PrepareOkRequest {
         View               = view,
         ServerId           = Uuid.FromGuid(serverId).ToDto(),
         ServerInternalHttp = new EndPoint(serverInternalHttp.Address.ToString(), (uint)serverInternalHttp.Port),
         EpochNumber        = epochNumber,
         EpochPosition      = epochPosition,
         EpochId            = Uuid.FromGuid(epochId).ToDto(),
         LastCommitPosition = lastCommitPosition,
         WriterCheckpoint   = writerCheckpoint,
         ChaserCheckpoint   = chaserCheckpoint,
         NodePriority       = nodePriority
     };
     await _electionsClient.PrepareOkAsync(request, deadline : deadline.ToUniversalTime());
 }
 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());
 }
Ejemplo n.º 4
0
        public override async Task <Empty> PrepareOk(PrepareOkRequest request, ServerCallContext context)
        {
            var user = context.GetHttpContext().User;

            if (!await _authorizationProvider.CheckAccessAsync(user, PrepareOkOperation, context.CancellationToken).ConfigureAwait(false))
            {
                throw AccessDenied();
            }
            _bus.Publish(new ElectionMessage.PrepareOk(
                             request.View,
                             Uuid.FromDto(request.ServerId).ToGuid(),
                             new IPEndPoint(IPAddress.Parse(request.ServerInternalHttp.Address), (int)request.ServerInternalHttp.Port),
                             request.EpochNumber,
                             request.EpochPosition,
                             Uuid.FromDto(request.EpochId).ToGuid(),
                             request.LastCommitPosition,
                             request.WriterCheckpoint,
                             request.ChaserCheckpoint,
                             request.NodePriority));
            return(EmptyResult);
        }