Esempio n. 1
0
        public async Task <LeaseTimeToLiveResponse> LeaseTimeToLiveAsync(LeaseTimeToLiveRequest request, Metadata headers = null)
        {
            LeaseTimeToLiveResponse response = new LeaseTimeToLiveResponse();
            bool success    = false;
            int  retryCount = 0;

            while (!success)
            {
                try
                {
                    response = await _balancer.GetConnection().leaseClient.LeaseTimeToLiveAsync(request, headers);

                    success = true;
                }
                catch (RpcException ex) when(ex.StatusCode == StatusCode.Unavailable)
                {
                    retryCount++;
                    if (retryCount >= _balancer._numNodes)
                    {
                        throw ex;
                    }
                }
            }
            return(response);
        }
Esempio n. 2
0
        /// <summary>
        /// LeaseTimeToLive retrieves lease information.
        /// </summary>
        /// <param name="request">The request to send to the server.</param>
        /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
        /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
        /// <param name="cancellationToken">An optional token for canceling the call.</param>
        /// <returns>The call object.</returns>
        public async Task <LeaseTimeToLiveResponse> LeaseTimeToLiveAsync(LeaseTimeToLiveRequest request,
                                                                         Grpc.Core.Metadata headers          = null, DateTime?deadline = null,
                                                                         CancellationToken cancellationToken = default)
        {
            LeaseTimeToLiveResponse response = new LeaseTimeToLiveResponse();
            bool success    = false;
            int  retryCount = 0;

            while (!success)
            {
                try
                {
                    response = await _balancer.GetConnection().leaseClient
                               .LeaseTimeToLiveAsync(request, headers, deadline, cancellationToken);

                    success = true;
                }
                catch (RpcException ex) when(ex.StatusCode == StatusCode.Unavailable)
                {
                    retryCount++;
                    if (retryCount >= _balancer._numNodes)
                    {
                        throw;
                    }
                }
            }

            return(response);
        }
Esempio n. 3
0
 public static Entity.LeaseTimeToLiveResponse FromProto(this LeaseTimeToLiveResponse response)
 {
     return(new Entity.LeaseTimeToLiveResponse()
     {
         GrantedTTL = response.GrantedTTL,
         Header = response.Header.FromProto(),
         ID = response.ID,
         TTL = response.TTL,
         Keys = response.Keys.FromProto()
     });
 }
Esempio n. 4
0
        public LeaseTimeToLiveResponse TimeToLive(long leaseId, LeaseOption option)
        {
            Etcdserverpb.LeaseTimeToLiveRequest leaseTimeToLiveRequest = new Etcdserverpb.LeaseTimeToLiveRequest
            {
                ID   = leaseId,
                Keys = option.IsAttachedKeys
            };
            var rsp = leaseClient.LeaseTimeToLive(leaseTimeToLiveRequest);
            LeaseTimeToLiveResponse response = new LeaseTimeToLiveResponse(rsp);

            return(response);
        }
Esempio n. 5
0
        public LeaseTimeToLiveResponse TimeToLive(long leaseId, LeaseOption option)
        {
            Etcdserverpb.LeaseTimeToLiveRequest leaseTimeToLiveRequest = new Etcdserverpb.LeaseTimeToLiveRequest();
            leaseTimeToLiveRequest.ID   = leaseId;
            leaseTimeToLiveRequest.Keys = option.isAttachedKeys();
            var rsp = leaseClient.LeaseTimeToLive(leaseTimeToLiveRequest);
            LeaseTimeToLiveResponse response = new LeaseTimeToLiveResponse(rsp);

            return(response);
            //return Util.ToCompletableFutureWithRetry(
            //     this.stub.LeaseTimeToLive(leaseTimeToLiveRequest),
            //      new FunctionResponse<Etcdserverpb.LeaseTimeToLiveRequest, LeaseTimeToLiveResponse>()
            //     );
        }