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); }
/// <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)); }
/// <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); }
/// <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); } }