Example #1
0
        /// <summary>
        /// LeaseRevoke revokes a lease in async. All keys attached to the lease will expire and be deleted.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <LeaseRevokeResponse> LeaseRevokeAsync(LeaseRevokeRequest request, Metadata headers = null)
        {
            LeaseRevokeResponse response = new LeaseRevokeResponse();
            bool success    = false;
            int  retryCount = 0;

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

                    success = true;
                }
                catch (RpcException ex) when(ex.StatusCode == StatusCode.Unavailable)
                {
                    retryCount++;
                    if (retryCount >= _balancer._numNodes)
                    {
                        throw ex;
                    }
                }
            }
            return(response);
        }
Example #2
0
        /// <summary>
        /// LeaseRevoke revokes a lease in async. All keys attached to the lease will expire and be deleted.
        /// </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 response received from the server.</returns>
        public async Task <LeaseRevokeResponse> LeaseRevokeAsync(LeaseRevokeRequest request,
                                                                 Grpc.Core.Metadata headers          = null, DateTime?deadline = null,
                                                                 CancellationToken cancellationToken = default)
        {
            LeaseRevokeResponse response = new LeaseRevokeResponse();
            bool success    = false;
            int  retryCount = 0;

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

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

            return(response);
        }
Example #3
0
        public LeaseRevokeResponse Revoke(long leaseId)
        {
            Etcdserverpb.LeaseRevokeRequest leaseRevokeRequest = new Etcdserverpb.LeaseRevokeRequest();
            leaseRevokeRequest.ID = leaseId;
            var rsp = leaseClient.LeaseRevoke(leaseRevokeRequest);
            LeaseRevokeResponse response = new LeaseRevokeResponse(rsp);

            return(response);
            //   return Util.ToCompletableFutureWithRetry(
            //       this.stub.LeaseRevoke(leaseRevokeRequest),
            //       new FunctionResponse<Etcdserverpb.LeaseRevokeRequest, LeaseRevokeResponse>()
            //  );
        }