Ejemplo n.º 1
0
        public static CreateAlarmResponse Unmarshall(UnmarshallerContext context)
        {
            CreateAlarmResponse createAlarmResponse = new CreateAlarmResponse();

            createAlarmResponse.HttpResponse = context.HttpResponse;
            createAlarmResponse.RequestId    = context.StringValue("CreateAlarm.RequestId");
            createAlarmResponse.AlarmTaskId  = context.StringValue("CreateAlarm.AlarmTaskId");

            return(createAlarmResponse);
        }
        public static CreateAlarmResponse Unmarshall(UnmarshallerContext context)
        {
            CreateAlarmResponse createAlarmResponse = new CreateAlarmResponse();

            createAlarmResponse.HttpResponse = context.HttpResponse;
            createAlarmResponse.Success      = context.BooleanValue("CreateAlarm.Success");
            createAlarmResponse.Code         = context.StringValue("CreateAlarm.Code");
            createAlarmResponse.Message      = context.StringValue("CreateAlarm.Message");
            createAlarmResponse.RequestId    = context.StringValue("CreateAlarm.RequestId");
            createAlarmResponse.Data         = context.StringValue("CreateAlarm.Data");

            return(createAlarmResponse);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Calls a duncan Web service that will determine if the alarm is already open and return the ID of that, or create a new event ID and return that one.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public CreateAlarmResponse CreateAlarm(CreateAlarmRequest request)
        {
            //fix up the response with some default values
            var alarmResponse = new CreateAlarmResponse {
                IsValid = false
            };

            var dataRequest = GenerateAlarmRequest(request);

            //now that we have our data request, we need to send it to duncan and get the response.
            string strUrl = ConfigurationManager.AppSettings[Constants.FieldMaintenance.WebServiceCreateAlarmName];
            var    serializedDataRequest = Serialize(dataRequest);

            if (string.IsNullOrEmpty(serializedDataRequest))
            {
                return(alarmResponse);
            }

            byte[] dataByte = StringToByteArray(serializedDataRequest);
            var    response = PostRequest(strUrl, dataByte);

            return(GetAlarmResponse(response, alarmResponse));
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Gets the sla and eventuid values from the alarm response (Data) object and populate the Create Alarm Response object.
 /// </summary>
 /// <param name="response"></param>
 /// <param name="alarmResponse"></param>
 /// <returns></returns>
 private CreateAlarmResponse GetAlarmResponse(Data response, CreateAlarmResponse alarmResponse)
 {
     //now that we have it, we need to get the SLA value and the event UID for it.
     if (response != null)
     {
         if (response.Response != null)
         {
             if (response.Response.WorkOrder != null)
             {
                 if (response.Response.WorkOrder.Any())
                 {
                     var dataResponseWorkOrderActiveAlarms = response.Response.WorkOrder[0].ActiveAlarm;
                     if (dataResponseWorkOrderActiveAlarms != null)
                     {
                         if (dataResponseWorkOrderActiveAlarms.Any())
                         {
                             alarmResponse.SlaDue = dataResponseWorkOrderActiveAlarms[0].SLADue;
                             var eventID = -1;
                             if (int.TryParse(dataResponseWorkOrderActiveAlarms[0].EventUID, out eventID))
                             {
                                 alarmResponse.EventUID = eventID;
                                 alarmResponse.IsValid  = true;
                             }
                         }
                     }
                 }
             }
         }
         else if (response.Error != null)
         {
             alarmResponse.IsValid      = false;
             alarmResponse.ErrorMessage = response.Error.Items[0];
         }
     }
     return(alarmResponse);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 创建一条告警规则。
        /// </summary>
        /// <param name="cesClient"></param>
        private static void CreateAlarm(CesClient cesClient)
        {
            CreateAlarmRequest createAlarmRequest = new CreateAlarmRequest()
            {
                Body = new CreateAlarmRequestBody()
                {
                    AlarmName        = "ces-sdk-02",
                    AlarmDescription = "create ECS alram",
                    Metric           = new MetricForAlarm
                    {
                        Namespace  = "AGT.ECS",
                        Dimensions = new List <MetricsDimension>()
                        {
                            new MetricsDimension()
                            {
                                Name  = "instance_id",
                                Value = "326277f5-ee01-4751-959e-8e9a364b6b3c"
                            }
                        },
                        MetricName = "cpu_usage_idle"
                    },
                    Condition = new Condition()
                    {
                        Period             = 1,
                        Filter             = "average",
                        ComparisonOperator = "<",
                        Value = 20,
                        Unit  = "%",
                        Count = 3
                    },
                    AlarmEnabled       = true,
                    AlarmActionEnabled = true,
                    AlarmLevel         = 2,
                    AlarmActions       = new List <AlarmActions>()
                    {
                        new AlarmActions()
                        {
                            Type             = "notification",
                            NotificationList = new List <string>()
                            {
                                "urn:smn:br-iaas-odin1:0605767fc300d5762ffdc01c5bba0cce:ces_test"
                            }
                        }
                    },
                    OkActions = new List <AlarmActions>()
                    {
                        new AlarmActions()
                        {
                            Type             = "notification",
                            NotificationList = new List <string>()
                            {
                                "urn:smn:br-iaas-odin1:0605767fc300d5762ffdc01c5bba0cce:ces_test"
                            }
                        }
                    },
                    InsufficientdataActions = new List <AlarmActions>()
                    {
                        new AlarmActions()
                        {
                            Type             = "notification",
                            NotificationList = new List <string>()
                            {
                                "urn:smn:br-iaas-odin1:0605767fc300d5762ffdc01c5bba0cce:ces_test"
                            }
                        }
                    }
                }
            };

            try
            {
                CreateAlarmResponse createAlarmResponse = cesClient.CreateAlarm(createAlarmRequest);
                Console.WriteLine("alarm_id: {0}", createAlarmResponse.AlarmId);
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }