/// <summary>
 /// MemberAdd adds a member into the cluster
 /// </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 MemberAddResponse MemberAdd(MemberAddRequest request, Grpc.Core.Metadata headers = null,
                                    DateTime?deadline = null,
                                    CancellationToken cancellationToken = default)
 {
     return(CallEtcd((connection) => connection.clusterClient
                     .MemberAdd(request, headers, deadline, cancellationToken)));
 }
 /// <summary>
 /// MemberAddAsync adds a member into the cluster in async
 /// </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 <MemberAddResponse> MemberAddAsync(MemberAddRequest request, Grpc.Core.Metadata headers = null,
                                                      DateTime?deadline = null,
                                                      CancellationToken cancellationToken = default)
 {
     return(await CallEtcdAsync(async (connection) => await connection.clusterClient
                                .MemberAddAsync(request, headers, deadline, cancellationToken)));
 }
Beispiel #3
0
        public MemberAddResponse MemberAdd(MemberAddRequest request)
        {
            var req = request.ToProto();
            var rsp = client.MemberAdd(req);

            return(rsp.FromProto());
        }
        /// <summary>
        ///  MemberAddAsync adds a member into the cluster in async
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <MemberAddResponse> MemberAddAsync(MemberAddRequest request, Grpc.Core.Metadata headers = null)
        {
            MemberAddResponse response = new MemberAddResponse();
            bool success    = false;
            int  retryCount = 0;

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

                    success = true;
                }
                catch (RpcException ex) when(ex.StatusCode == StatusCode.Unavailable)
                {
                    retryCount++;
                    if (retryCount >= _balancer._numNodes)
                    {
                        throw ex;
                    }
                }
            }
            return(response);
        }
        /// <summary>
        /// MemberAdd adds a member into the cluster
        /// </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 MemberAddResponse MemberAdd(MemberAddRequest request, Grpc.Core.Metadata headers = null,
                                           DateTime?deadline = null,
                                           CancellationToken cancellationToken = default)
        {
            MemberAddResponse response = new MemberAddResponse();
            bool success    = false;
            int  retryCount = 0;

            while (!success)
            {
                try
                {
                    response = _balancer.GetConnection().clusterClient
                               .MemberAdd(request, headers, deadline, cancellationToken);
                    success = true;
                }
                catch (RpcException ex) when(ex.StatusCode == StatusCode.Unavailable)
                {
                    retryCount++;
                    if (retryCount >= _balancer._numNodes)
                    {
                        throw;
                    }
                }
            }

            return(response);
        }
Beispiel #6
0
        /// <summary>
        ///  MemberAddAsync adds a member into the cluster in async
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <MemberAddResponse> MemberAddAsync(MemberAddRequest request, Metadata headers = null)
        {
            MemberAddResponse response = new MemberAddResponse();

            response = await _balancer.GetConnection().clusterClient.MemberAddAsync(request, headers);

            return(response);
        }
Beispiel #7
0
        /// <summary>
        ///  MemberAdd adds a member into the cluster
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public MemberAddResponse MemberAdd(MemberAddRequest request, Metadata headers = null)
        {
            MemberAddResponse response = new MemberAddResponse();

            response = _balancer.GetConnection().clusterClient.MemberAdd(request, headers);

            return(response);
        }
Beispiel #8
0
        public MemberAddResponse MemberAdd(string[] peerURLs)
        {
            MemberAddRequest request = new MemberAddRequest()
            {
                PeerURLs = peerURLs
            };

            return(MemberAdd(request));
        }
Beispiel #9
0
        public static MemberAddRequest ToProto(this Entity.MemberAddRequest request)
        {
            var tmp = new MemberAddRequest()
            {
                IsLearner = request.IsLearner,
            };

            tmp.PeerURLs.AddRange(request.PeerURLs);
            return(tmp);
        }
Beispiel #10
0
        public SingleApiResponse MemberAdd(MemberAddRequest req)
        {
            var newRoles = req.U_IDS.Select(x => new SS_ROLE_USER()
            {
                U_ID = x, R_ID = req.R_ID
            }).ToList();

            RepoBase.Instance.BulkInsert(newRoles, "");
            return(new SingleApiResponse());
        }
Beispiel #11
0
        /// <summary>
        ///  MemberAddAsync adds a member into the cluster in async
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <MemberAddResponse> MemberAddAsync(MemberAddRequest request)
        {
            MemberAddResponse response = new MemberAddResponse();

            try
            {
                response = await _clusterClient.MemberAddAsync(request, _headers);
            }
            catch (RpcException ex)
            {
                ResetConnection(ex);
                throw;
            }
            catch
            {
                throw;
            }
            return(response);
        }
Beispiel #12
0
        /// <summary>
        ///  MemberAdd adds a member into the cluster
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public MemberAddResponse MemberAdd(MemberAddRequest request)
        {
            MemberAddResponse response = new MemberAddResponse();

            try
            {
                response = _clusterClient.MemberAdd(request, _headers);
            }
            catch (RpcException ex)
            {
                ResetConnection(ex);
                throw;
            }
            catch
            {
                throw;
            }
            return(response);
        }
Beispiel #13
0
 public SingleApiResponse MemberAdd([FromBody] MemberAddRequest req)
 {
     return(IRoleBiz.MemberAdd(req));
 }