Esempio n. 1
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            UpdateBackendRequest request;

            try
            {
                request = new UpdateBackendRequest
                {
                    NetworkLoadBalancerId = NetworkLoadBalancerId,
                    UpdateBackendDetails  = UpdateBackendDetails,
                    BackendSetName        = BackendSetName,
                    BackendName           = BackendName,
                    OpcRequestId          = OpcRequestId,
                    OpcRetryToken         = OpcRetryToken,
                    IfMatch = IfMatch
                };

                response = client.UpdateBackend(request).GetAwaiter().GetResult();
                WriteOutput(response, CreateWorkRequestObject(response.OpcWorkRequestId));
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
Esempio n. 2
0
        public override Task <Null> UpdateBackend(UpdateBackendRequest request, ServerCallContext context)
        {
            logger.LogInformation($"Updating SessionManager {remoteConfig.SessionManagerAddress} to {request.SessionManagerAddress} ");
            if (remoteConfig.SessionManagerAddress == request.SessionManagerAddress) // ServerManager 가 복구된 경우 ServerManager 가 SessionServer 의 정보를 알수가 없어 UpdateBackend 를 보낼 수 있다.
            {
                return(Task.FromResult(new Null()));
            }

            remoteConfig.SessionManagerAddress = request.SessionManagerAddress;

            if (string.IsNullOrEmpty(request.SessionManagerAddress) == false && // SessionManager 복구된 경우
                localConfig.HasPushService) // Push service 에서
            {                               // SessionManager 와 user 동기화
                var client = clients.GetClient <SessionManager.SessionManagerClient>(request.SessionManagerAddress);
                Frontend.PushService.Pusher.SyncUsersToSessionManager(client, remoteConfig.BackendListeningAddress, headers, logger);
            }

            return(Task.FromResult(new Null()));
        }
Esempio n. 3
0
        private void BroadcastUpdateBackend()
        {
            List <Server> targets;

            lock (servers) targets = servers.ToList();
            var req = new UpdateBackendRequest {
                SessionManagerAddress = sessionManagerAddress
            };

            foreach (var t in targets)
            {
                try
                {
                    var c = clients.GetClient <ServerHost.ServerHostClient>(t.BackendListeningAddress);
                    c.UpdateBackendAsync(req, headers: header);
                }
                catch (RpcException ex)
                {
                    logger.LogWarning($"Error on UpdateBackend of {t.ServerId} : {ex.Message}");
                }
            }
        }
Esempio n. 4
0
 /// <summary>
 ///  修改一个后端服务的信息
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public async Task <UpdateBackendResponse> UpdateBackend(UpdateBackendRequest request)
 {
     return(await new UpdateBackendExecutor().Client(this).Execute <UpdateBackendResponse, UpdateBackendResult, UpdateBackendRequest>(request).ConfigureAwait(false));
 }
Esempio n. 5
0
 /// <summary>
 ///  修改一个后端服务的信息
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public UpdateBackendResponse UpdateBackend(UpdateBackendRequest request)
 {
     return(new UpdateBackendExecutor().Client(this).Execute <UpdateBackendResponse, UpdateBackendResult, UpdateBackendRequest>(request));
 }