示例#1
0
        /// <summary>
        ///  Alarm activates, deactivates, and queries alarms regarding cluster health in async
        /// </summary>
        /// <param name="request">Alarm request</param>
        /// <returns>Alarm Response</returns>
        public async Task <AlarmResponse> AlarmAsync(AlarmRequest request, Metadata headers = null)
        {
            AlarmResponse response   = new AlarmResponse();
            bool          success    = false;
            int           retryCount = 0;

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

                    success = true;
                }
                catch (RpcException ex) when(ex.StatusCode == StatusCode.Unavailable)
                {
                    retryCount++;
                    if (retryCount >= _balancer._numNodes)
                    {
                        throw ex;
                    }
                }
            }
            return(response);
        }
示例#2
0
        /// <summary>
        ///  Alarm activates, deactivates, and queries alarms regarding cluster health in async
        /// </summary>
        /// <param name="request">Alarm request</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>Alarm Response</returns>
        public async Task <AlarmResponse> AlarmAsync(AlarmRequest request, Grpc.Core.Metadata headers = null,
                                                     DateTime?deadline = null,
                                                     CancellationToken cancellationToken = default)
        {
            AlarmResponse response   = new AlarmResponse();
            bool          success    = false;
            int           retryCount = 0;

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

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

            return(response);
        }
        /// <summary>
        /// Async method to check if there is new alarms -- test purposes
        /// </summary>
        /// <returns></returns>
        public async Task <String> CheckForAlarmsAsync()
        {
            Uri uri = new Uri(String.Format("https://192.168.1.59:45455/api/messages/"));

            try
            {
                HttpResponseMessage response = null;

                response = await client.GetAsync(uri);

                if (response.IsSuccessStatusCode)
                {
                    var responseContent = response.Content;

                    string jsonString = await responseContent.ReadAsStringAsync().ConfigureAwait(false);

                    Console.WriteLine(jsonString);

                    AlarmResponse alarm = JsonConvert.DeserializeObject <AlarmResponse>(jsonString);

                    Console.WriteLine(alarm.ToString());

                    return(alarm.ToString());
                }
                return(null);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(@"\tERROR {0}", ex.Message);
                return(ex.ToString());
            }
        }
        /// <summary>
        ///  Alarm activates, deactivates, and queries alarms regarding cluster health in async
        /// </summary>
        /// <param name="request">Alarm request</param>
        /// <returns>Alarm Response</returns>
        public async Task <AlarmResponse> AlarmAsync(AlarmRequest request, Metadata headers = null)
        {
            AlarmResponse response = new AlarmResponse();

            response = await _balancer.GetConnection().maintenanceClient.AlarmAsync(request, headers);

            return(response);
        }
        /// <summary>
        ///  Alarm activates, deactivates, and queries alarms regarding cluster health
        /// </summary>
        /// <param name="request">Alarm request</param>
        /// <returns>Alarm Response</returns>
        public AlarmResponse Alarm(AlarmRequest request, Metadata headers = null)
        {
            AlarmResponse response = new AlarmResponse();

            response = _balancer.GetConnection().maintenanceClient.Alarm(request, headers);

            return(response);
        }
示例#6
0
        public AlarmWorker(AlarmResponse alarmResponse)
        {
            wxPayHelper.SetAppId(wxPayConfig.AppId);           ////""
            wxPayHelper.SetAppKey(wxPayConfig.AppKey);         ////""
            wxPayHelper.SetPartnerKey(wxPayConfig.PartnerKey); ////""
            ////wxPayHelper.SetSignType(wxPayConfig.SignType);////"sha1"

            ////wxPayHelper.SetParameter("bank_type", wxPayConfig.BankType);
            ////wxPayHelper.SetParameter("partner", wxPayConfig.Partner);
            ////wxPayHelper.SetParameter("fee_type", wxPayConfig.FeeType);
            ////wxPayHelper.SetParameter("notify_url", wxPayConfig.NotifyUrl);
            ////wxPayHelper.SetParameter("input_charset", wxPayConfig.InputCharset);

            this._alarmResponse = alarmResponse;
        }
示例#7
0
        /**
         * disarms a given alarm.
         *
         * @param member the alarm
         * @return the response result
         */

        public AlarmResponse AlarmDisarm(AlarmMember member)
        {
            Etcdserverpb.AlarmRequest alarmRequest = new Etcdserverpb.AlarmRequest();
            alarmRequest.Alarm    = Etcdserverpb.AlarmType.Nospace;
            alarmRequest.Action   = Etcdserverpb.AlarmRequest.Types.AlarmAction.Deactivate;
            alarmRequest.MemberID = member.MemberId;
            var           rsp      = maintenanceClient.Alarm(alarmRequest);
            AlarmResponse response = new AlarmResponse(rsp);

            return(response);
            //    return Util.ToCompletableFuture(
            //        this.stub.Alarm(alarmRequest),
            //        new FunctionResponse<Etcdserverpb.AlarmRequest, AlarmResponse>()
            //    );
        }
示例#8
0
        /**
         * get all active keyspace alarm.
         *
         * @return alarm list
         */

        public AlarmResponse ListAlarms()
        {
            Etcdserverpb.AlarmRequest alarmRequest = new Etcdserverpb.AlarmRequest();
            alarmRequest.Alarm    = Etcdserverpb.AlarmType.None;
            alarmRequest.Action   = Etcdserverpb.AlarmRequest.Types.AlarmAction.Get;
            alarmRequest.MemberID = 0;
            var           rsp      = maintenanceClient.Alarm(alarmRequest);
            AlarmResponse response = new AlarmResponse(rsp);

            return(response);

            //return Util.ToCompletableFuture(
            //    this.stub.Alarm(alarmRequest),
            //     new FunctionResponse<Etcdserverpb.AlarmRequest, AlarmResponse>()
            //);
        }
示例#9
0
        /// <summary>
        ///  Alarm activates, deactivates, and queries alarms regarding cluster health in async
        /// </summary>
        /// <param name="request">Alarm request</param>
        /// <returns>Alarm Response</returns>
        public async Task <AlarmResponse> AlarmAsync(AlarmRequest request)
        {
            AlarmResponse response = new AlarmResponse();

            try
            {
                response = await _maintenanceClient.AlarmAsync(request);
            }
            catch (RpcException)
            {
                ResetConnection();
                throw;
            }
            catch
            {
                throw;
            }
            return(response);
        }
示例#10
0
        /// <summary>
        ///  Alarm activates, deactivates, and queries alarms regarding cluster health
        /// </summary>
        /// <param name="request">Alarm request</param>
        /// <returns>Alarm Response</returns>
        public AlarmResponse Alarm(AlarmRequest request)
        {
            AlarmResponse response = new AlarmResponse();

            try
            {
                response = _maintenanceClient.Alarm(request);
            }
            catch (RpcException)
            {
                ResetConnection();
                throw;
            }
            catch
            {
                throw;
            }
            return(response);
        }
示例#11
0
        private async void MakeRequestAlarm()
        {
            var myHttpClient = new HttpClient();
            var uri          = new Uri("http://smartboxcity.ru:8003/imitator/" + StaticBox.DeviceId + "/alarm/" +
                                       CrossSettings.Current.GetValueOrDefault("AlermId", "") + "/raise");
            HttpResponseMessage response = await myHttpClient.GetAsync(uri.ToString());

            string s_result;

            using (HttpContent responseContent = response.Content)
            {
                s_result = await responseContent.ReadAsStringAsync();
            }
            if (response.IsSuccessStatusCode)
            {
                AlarmResponse o_data = new AlarmResponse();
                o_data = JsonConvert.DeserializeObject <AlarmResponse>(s_result);

                if (o_data.Message == "Угроза имитатора изменена")
                {
                    btn_cause_alarm.Text = "Отменить тревогу";
                }
                Android.App.AlertDialog.Builder alert = new Android.App.AlertDialog.Builder(this);
                alert.SetTitle("Тревоги");
                alert.SetMessage(o_data.Message);
                alert.SetPositiveButton("Закрыть", (senderAlert1, args1) =>
                {
                });
                Dialog dialog1 = alert.Create();
                dialog1.Show();
            }
            else
            {
                ErrorResponseObject error = new ErrorResponseObject();
                error = JsonConvert.DeserializeObject <ErrorResponseObject>(s_result);
                Toast.MakeText(this, error.Errors[0], ToastLength.Long).Show();
            }
        }