private static void UnmarshallResult(XmlUnmarshallerContext context, DescribeAlarmsResponse response)
        {
            int originalDepth = context.CurrentDepth;
            int targetDepth   = originalDepth + 1;

            if (context.IsStartOfDocument)
            {
                targetDepth += 2;
            }

            while (context.ReadAtDepth(originalDepth))
            {
                if (context.IsStartElement || context.IsAttribute)
                {
                    if (context.TestExpression("MetricAlarms/member", targetDepth))
                    {
                        var unmarshaller = MetricAlarmUnmarshaller.Instance;
                        var item         = unmarshaller.Unmarshall(context);
                        response.MetricAlarms.Add(item);
                        continue;
                    }
                    if (context.TestExpression("NextToken", targetDepth))
                    {
                        var unmarshaller = StringUnmarshaller.Instance;
                        response.NextToken = unmarshaller.Unmarshall(context);
                        continue;
                    }
                }
            }

            return;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// <para> Retrieves alarms with the specified names. If no name is
        /// specified, all alarms for the user are returned. Alarms can be
        /// retrieved by using only a prefix for the alarm name, the alarm state,
        /// or a prefix for any action. </para>
        /// </summary>
        ///
        /// <param name="describeAlarmsRequest">Container for the necessary
        ///           parameters to execute the DescribeAlarms service method on
        ///           AmazonCloudWatch.</param>
        ///
        /// <returns>The response from the DescribeAlarms service method, as
        ///         returned by AmazonCloudWatch.</returns>
        ///
        /// <exception cref="InvalidNextTokenException"/>
        public DescribeAlarmsResponse DescribeAlarms(DescribeAlarmsRequest describeAlarmsRequest)
        {
            IRequest <DescribeAlarmsRequest> request  = new DescribeAlarmsRequestMarshaller().Marshall(describeAlarmsRequest);
            DescribeAlarmsResponse           response = Invoke <DescribeAlarmsRequest, DescribeAlarmsResponse> (request, this.signer, DescribeAlarmsResponseUnmarshaller.GetInstance());

            return(response);
        }
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            DescribeAlarmsResponse response = new DescribeAlarmsResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.IsStartElement)
                {
                    if (context.TestExpression("DescribeAlarmsResult", 2))
                    {
                        UnmarshallResult(context, response);
                        continue;
                    }

                    if (context.TestExpression("ResponseMetadata", 2))
                    {
                        response.ResponseMetadata = ResponseMetadataUnmarshaller.Instance.Unmarshall(context);
                    }
                }
            }

            return(response);
        }
Ejemplo n.º 4
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonCloudWatchConfig config = new AmazonCloudWatchConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonCloudWatchClient client = new AmazonCloudWatchClient(creds, config);

            DescribeAlarmsResponse resp = new DescribeAlarmsResponse();

            do
            {
                DescribeAlarmsRequest req = new DescribeAlarmsRequest
                {
                    NextToken = resp.NextToken
                    ,
                    MaxRecords = maxItems
                };

                resp = client.DescribeAlarms(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.MetricAlarms)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
Ejemplo n.º 5
0
        public async Task <IEnumerable <MetricAlarm> > ListMetricAlarmsAsync(
            string alarmNamePrefix = null,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            var list = new List <MetricAlarm>();
            DescribeAlarmsResponse response = null;

            while ((response = await _client.DescribeAlarmsAsync(new DescribeAlarmsRequest()
            {
                NextToken = response?.NextToken,
                MaxRecords = 100,
                AlarmNamePrefix = alarmNamePrefix
            }, cancellationToken))?.HttpStatusCode == System.Net.HttpStatusCode.OK)
            {
                if (!response.MetricAlarms.IsNullOrEmpty())
                {
                    list.AddRange(response.MetricAlarms);
                }

                if (response.NextToken.IsNullOrEmpty())
                {
                    break;
                }

                await Task.Delay(100);
            }

            response.EnsureSuccess();
            return(list);
        }
Ejemplo n.º 6
0
        public static DescribeAlarmsResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeAlarmsResponse describeAlarmsResponse = new DescribeAlarmsResponse();

            describeAlarmsResponse.HttpResponse = context.HttpResponse;
            describeAlarmsResponse.RequestId    = context.StringValue("DescribeAlarms.RequestId");
            describeAlarmsResponse.TotalCount   = context.IntegerValue("DescribeAlarms.TotalCount");
            describeAlarmsResponse.PageNumber   = context.IntegerValue("DescribeAlarms.PageNumber");
            describeAlarmsResponse.PageSize     = context.IntegerValue("DescribeAlarms.PageSize");

            List <DescribeAlarmsResponse.DescribeAlarms_Alarm> describeAlarmsResponse_alarmList = new List <DescribeAlarmsResponse.DescribeAlarms_Alarm>();

            for (int i = 0; i < context.Length("DescribeAlarms.AlarmList.Length"); i++)
            {
                DescribeAlarmsResponse.DescribeAlarms_Alarm alarm = new DescribeAlarmsResponse.DescribeAlarms_Alarm();
                alarm.AlarmTaskId        = context.StringValue("DescribeAlarms.AlarmList[" + i + "].AlarmTaskId");
                alarm.Name               = context.StringValue("DescribeAlarms.AlarmList[" + i + "].Name");
                alarm.Description        = context.StringValue("DescribeAlarms.AlarmList[" + i + "].Description");
                alarm.MetricType         = context.StringValue("DescribeAlarms.AlarmList[" + i + "].MetricType");
                alarm.MetricName         = context.StringValue("DescribeAlarms.AlarmList[" + i + "].MetricName");
                alarm.Period             = context.IntegerValue("DescribeAlarms.AlarmList[" + i + "].Period");
                alarm.Statistics         = context.StringValue("DescribeAlarms.AlarmList[" + i + "].Statistics");
                alarm.ComparisonOperator = context.StringValue("DescribeAlarms.AlarmList[" + i + "].ComparisonOperator");
                alarm.Threshold          = context.FloatValue("DescribeAlarms.AlarmList[" + i + "].Threshold");
                alarm.EvaluationCount    = context.IntegerValue("DescribeAlarms.AlarmList[" + i + "].EvaluationCount");
                alarm.State              = context.StringValue("DescribeAlarms.AlarmList[" + i + "].State");
                alarm.ScalingGroupId     = context.StringValue("DescribeAlarms.AlarmList[" + i + "].ScalingGroupId");
                alarm.Enable             = context.BooleanValue("DescribeAlarms.AlarmList[" + i + "].Enable");
                alarm.Effective          = context.StringValue("DescribeAlarms.AlarmList[" + i + "].Effective");

                List <string> alarm_alarmActions = new List <string>();
                for (int j = 0; j < context.Length("DescribeAlarms.AlarmList[" + i + "].AlarmActions.Length"); j++)
                {
                    alarm_alarmActions.Add(context.StringValue("DescribeAlarms.AlarmList[" + i + "].AlarmActions[" + j + "]"));
                }
                alarm.AlarmActions = alarm_alarmActions;

                List <DescribeAlarmsResponse.DescribeAlarms_Alarm.DescribeAlarms_Dimension> alarm_dimensions = new List <DescribeAlarmsResponse.DescribeAlarms_Alarm.DescribeAlarms_Dimension>();
                for (int j = 0; j < context.Length("DescribeAlarms.AlarmList[" + i + "].Dimensions.Length"); j++)
                {
                    DescribeAlarmsResponse.DescribeAlarms_Alarm.DescribeAlarms_Dimension dimension = new DescribeAlarmsResponse.DescribeAlarms_Alarm.DescribeAlarms_Dimension();
                    dimension.DimensionKey   = context.StringValue("DescribeAlarms.AlarmList[" + i + "].Dimensions[" + j + "].DimensionKey");
                    dimension.DimensionValue = context.StringValue("DescribeAlarms.AlarmList[" + i + "].Dimensions[" + j + "].DimensionValue");

                    alarm_dimensions.Add(dimension);
                }
                alarm.Dimensions = alarm_dimensions;

                describeAlarmsResponse_alarmList.Add(alarm);
            }
            describeAlarmsResponse.AlarmList = describeAlarmsResponse_alarmList;

            return(describeAlarmsResponse);
        }
Ejemplo n.º 7
0
        public static DescribeAlarmsResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeAlarmsResponse describeAlarmsResponse = new DescribeAlarmsResponse();

            describeAlarmsResponse.HttpResponse = context.HttpResponse;
            describeAlarmsResponse.RequestId    = context.StringValue("DescribeAlarms.RequestId");
            describeAlarmsResponse.TraceId      = context.StringValue("DescribeAlarms.TraceId");
            describeAlarmsResponse.Success      = context.BooleanValue("DescribeAlarms.Success");
            describeAlarmsResponse.Code         = context.IntegerValue("DescribeAlarms.Code");
            describeAlarmsResponse.Message      = context.StringValue("DescribeAlarms.Message");
            describeAlarmsResponse.Total        = context.StringValue("DescribeAlarms.Total");

            List <DescribeAlarmsResponse.DescribeAlarms_Alarm> describeAlarmsResponse_datapoints = new List <DescribeAlarmsResponse.DescribeAlarms_Alarm>();

            for (int i = 0; i < context.Length("DescribeAlarms.Datapoints.Length"); i++)
            {
                DescribeAlarmsResponse.DescribeAlarms_Alarm alarm = new DescribeAlarmsResponse.DescribeAlarms_Alarm();
                alarm.Uuid                = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Uuid");
                alarm.Name                = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Name");
                alarm._Namespace          = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Namespace");
                alarm.MetricName          = context.StringValue("DescribeAlarms.Datapoints[" + i + "].MetricName");
                alarm.Period              = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Period");
                alarm.EvaluationCount     = context.StringValue("DescribeAlarms.Datapoints[" + i + "].EvaluationCount");
                alarm.EffectiveInterval   = context.StringValue("DescribeAlarms.Datapoints[" + i + "].EffectiveInterval");
                alarm.NoEffectiveInterval = context.StringValue("DescribeAlarms.Datapoints[" + i + "].NoEffectiveInterval");
                alarm.SilenceTime         = context.StringValue("DescribeAlarms.Datapoints[" + i + "].SilenceTime");
                alarm.Enable              = context.BooleanValue("DescribeAlarms.Datapoints[" + i + "].Enable");
                alarm.State               = context.StringValue("DescribeAlarms.Datapoints[" + i + "].State");
                alarm.ContactGroups       = context.StringValue("DescribeAlarms.Datapoints[" + i + "].ContactGroups");
                alarm.Webhook             = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Webhook");
                alarm.Subject             = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Subject");
                alarm.RuleName            = context.StringValue("DescribeAlarms.Datapoints[" + i + "].RuleName");
                alarm.Resources           = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Resources");
                alarm.Level               = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Level");
                alarm.GroupId             = context.StringValue("DescribeAlarms.Datapoints[" + i + "].GroupId");
                alarm.GroupName           = context.StringValue("DescribeAlarms.Datapoints[" + i + "].GroupName");
                alarm.Dimensions          = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Dimensions");
                alarm.Statistics          = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Statistics");
                alarm.ComparisonOperator  = context.StringValue("DescribeAlarms.Datapoints[" + i + "].ComparisonOperator");
                alarm.Threshold           = context.StringValue("DescribeAlarms.Datapoints[" + i + "].Threshold");
                alarm.DisplayName         = context.StringValue("DescribeAlarms.Datapoints[" + i + "].DisplayName");

                describeAlarmsResponse_datapoints.Add(alarm);
            }
            describeAlarmsResponse.Datapoints = describeAlarmsResponse_datapoints;

            return(describeAlarmsResponse);
        }
        public static DescribeAlarmsResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeAlarmsResponse describeAlarmsResponse = new DescribeAlarmsResponse();

            describeAlarmsResponse.HttpResponse   = context.HttpResponse;
            describeAlarmsResponse.ErrorMessage   = context.StringValue("DescribeAlarms.ErrorMessage");
            describeAlarmsResponse.ErrorCode      = context.StringValue("DescribeAlarms.ErrorCode");
            describeAlarmsResponse.PageSize       = context.IntegerValue("DescribeAlarms.PageSize");
            describeAlarmsResponse.Message        = context.StringValue("DescribeAlarms.Message");
            describeAlarmsResponse.TotalCount     = context.IntegerValue("DescribeAlarms.TotalCount");
            describeAlarmsResponse.PageNumber     = context.IntegerValue("DescribeAlarms.PageNumber");
            describeAlarmsResponse.DynamicCode    = context.StringValue("DescribeAlarms.DynamicCode");
            describeAlarmsResponse.Code           = context.StringValue("DescribeAlarms.Code");
            describeAlarmsResponse.DynamicMessage = context.StringValue("DescribeAlarms.DynamicMessage");
            describeAlarmsResponse.RequestId      = context.StringValue("DescribeAlarms.RequestId");
            describeAlarmsResponse.Success        = context.BooleanValue("DescribeAlarms.Success");

            List <DescribeAlarmsResponse.DescribeAlarms_AlarmInfo> describeAlarmsResponse_alarms = new List <DescribeAlarmsResponse.DescribeAlarms_AlarmInfo>();

            for (int i = 0; i < context.Length("DescribeAlarms.Alarms.Length"); i++)
            {
                DescribeAlarmsResponse.DescribeAlarms_AlarmInfo alarmInfo = new DescribeAlarmsResponse.DescribeAlarms_AlarmInfo();
                alarmInfo.Remark           = context.StringValue("DescribeAlarms.Alarms[" + i + "].Remark");
                alarmInfo.StoreId          = context.StringValue("DescribeAlarms.Alarms[" + i + "].StoreId");
                alarmInfo.DeviceBarCode    = context.StringValue("DescribeAlarms.Alarms[" + i + "].DeviceBarCode");
                alarmInfo.DealUserId       = context.StringValue("DescribeAlarms.Alarms[" + i + "].DealUserId");
                alarmInfo.DeviceType       = context.StringValue("DescribeAlarms.Alarms[" + i + "].DeviceType");
                alarmInfo.ItemTitle        = context.StringValue("DescribeAlarms.Alarms[" + i + "].ItemTitle");
                alarmInfo.AlarmTime        = context.StringValue("DescribeAlarms.Alarms[" + i + "].AlarmTime");
                alarmInfo.ErrorType        = context.StringValue("DescribeAlarms.Alarms[" + i + "].ErrorType");
                alarmInfo.DeviceMac        = context.StringValue("DescribeAlarms.Alarms[" + i + "].DeviceMac");
                alarmInfo.AlarmId          = context.StringValue("DescribeAlarms.Alarms[" + i + "].AlarmId");
                alarmInfo.RetryGmtCreate   = context.StringValue("DescribeAlarms.Alarms[" + i + "].RetryGmtCreate");
                alarmInfo.RetryGmtModified = context.StringValue("DescribeAlarms.Alarms[" + i + "].RetryGmtModified");
                alarmInfo.ItemBarCode      = context.StringValue("DescribeAlarms.Alarms[" + i + "].ItemBarCode");
                alarmInfo.RetryTimes       = context.LongValue("DescribeAlarms.Alarms[" + i + "].RetryTimes");
                alarmInfo.DealTime         = context.StringValue("DescribeAlarms.Alarms[" + i + "].DealTime");
                alarmInfo.AlarmType        = context.StringValue("DescribeAlarms.Alarms[" + i + "].AlarmType");
                alarmInfo.AlarmStatus      = context.StringValue("DescribeAlarms.Alarms[" + i + "].AlarmStatus");

                describeAlarmsResponse_alarms.Add(alarmInfo);
            }
            describeAlarmsResponse.Alarms = describeAlarmsResponse_alarms;

            return(describeAlarmsResponse);
        }
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            DescribeAlarmsResponse response = new DescribeAlarmsResponse();

            while (context.Read())
            {
                if (context.IsStartElement)
                {
                    if (context.TestExpression("DescribeAlarmsResult", 2))
                    {
                        response.DescribeAlarmsResult = DescribeAlarmsResultUnmarshaller.GetInstance().Unmarshall(context);
                        continue;
                    }
                    if (context.TestExpression("ResponseMetadata", 2))
                    {
                        response.ResponseMetadata = ResponseMetadataUnmarshaller.GetInstance().Unmarshall(context);
                    }
                }
            }


            return(response);
        }
Ejemplo n.º 10
0
        private static void UnmarshallResult(XmlUnmarshallerContext context, DescribeAlarmsResponse response)
        {
            int originalDepth = context.CurrentDepth;
            int targetDepth   = originalDepth + 1;

            if (context.IsStartOfDocument)
            {
                targetDepth += 2;
            }

            while (context.Read())
            {
                if (context.IsStartElement || context.IsAttribute)
                {
                    if (context.TestExpression("MetricAlarms/member", targetDepth))
                    {
                        response.MetricAlarms.Add(MetricAlarmUnmarshaller.GetInstance().Unmarshall(context));

                        continue;
                    }
                    if (context.TestExpression("NextToken", targetDepth))
                    {
                        response.NextToken = StringUnmarshaller.GetInstance().Unmarshall(context);

                        continue;
                    }
                }
                else if (context.IsEndElement && context.CurrentDepth < originalDepth)
                {
                    return;
                }
            }



            return;
        }
Ejemplo n.º 11
0
        public static void CWDescribeAlarms()
        {
            #region CWDescribeAlarms
            var client = new AmazonCloudWatchClient();

            var request = new DescribeAlarmsRequest
            {
                AlarmNames = new List <string>()
                {
                    "awseb-e-b36EXAMPLE-stack-CloudwatchAlarmLow-1KAKH4EXAMPLE"
                },
                MaxRecords = 1,
                StateValue = StateValue.ALARM
            };

            var response = new DescribeAlarmsResponse();

            do
            {
                response = client.DescribeAlarms(request);

                foreach (var alarm in response.MetricAlarms)
                {
                    Console.WriteLine(alarm.AlarmName);
                    Console.WriteLine(alarm.AlarmDescription);
                    Console.WriteLine(alarm.MetricName + " " +
                                      alarm.ComparisonOperator + " " + alarm.Threshold);
                    Console.WriteLine();
                }

                request.NextToken = response.NextToken;
            } while (!string.IsNullOrEmpty(response.NextToken));
            #endregion

            Console.ReadLine();
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> Index(Boolean unFixable)
        {
            var CloudwatchFeed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/cloudwatch-ap-southeast-1.rss");

            var CloudwatchFeed1 = CloudwatchFeed.Items.ElementAt(0);

            if (CloudwatchFeed1.Title.StartsWith("Service is operating normally"))
            {
                ViewData["CWStatus"] = "OK";
            }
            else if (CloudwatchFeed1.Title.StartsWith("Informational message") || CloudwatchFeed1.Title.StartsWith("Performance issues"))
            {
                ViewData["CWStatus"] = "WARNING";
            }
            else if (CloudwatchFeed1.Title.StartsWith("Service disruption"))
            {
                ViewData["CWStatus"] = "CRITICAL";
            }

            var EC2Feed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/ec2-ap-southeast-1.rss");

            var EC2Feed1 = EC2Feed.Items.ElementAt(0);

            if (EC2Feed1.Title.StartsWith("Service is operating normally"))
            {
                ViewData["EC2Status"] = "OK";
            }
            else if (EC2Feed1.Title.StartsWith("Informational message") || EC2Feed1.Title.StartsWith("Performance issues"))
            {
                ViewData["EC2Status"] = "WARNING";
            }
            else if (EC2Feed1.Title.StartsWith("Service disruption"))
            {
                ViewData["EC2Status"] = "CRITICAL";
            }

            var EBSFeed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/elasticbeanstalk-ap-southeast-1.rss");

            var EBSFeed1 = EBSFeed.Items.ElementAt(0);

            if (EBSFeed1.Title.StartsWith("Service is operating normally"))
            {
                ViewData["EBSStatus"] = "OK";
            }
            else if (EBSFeed1.Title.StartsWith("Informational message") || EBSFeed1.Title.StartsWith("Performance issues"))
            {
                ViewData["EBSStatus"] = "WARNING";
            }
            else if (EBSFeed1.Title.StartsWith("Service disruption"))
            {
                ViewData["EBSStatus"] = "CRITICAL";
            }

            var ELBFeed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/elb-ap-southeast-1.rss");

            if (ELBFeed.Items.Count != 0)
            {
                var ELBFeed1 = ELBFeed.Items.ElementAt(0);
                if (ELBFeed1.Title.StartsWith("Service is operating normally"))
                {
                    ViewData["ELBStatus"] = "OK";
                }
                else if (ELBFeed1.Title.StartsWith("Informational message") || ELBFeed1.Title.StartsWith("Performance issues"))
                {
                    ViewData["ELBStatus"] = "WARNING";
                }
                else if (ELBFeed1.Title.StartsWith("Service disruption"))
                {
                    ViewData["ELBStatus"] = "CRITICAL";
                }
            }
            else
            {
                ViewData["ELBStatus"] = "OK";
            }

            var NATFeed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/natgateway-ap-southeast-1.rss");

            if (NATFeed.Items.Count != 0)
            {
                var NATFeed1 = NATFeed.Items.ElementAt(0);
                if (NATFeed1.Title.StartsWith("Service is operating normally"))
                {
                    ViewData["NATStatus"] = "OK";
                }
                else if (NATFeed1.Title.StartsWith("Informational message") || NATFeed1.Title.StartsWith("Performance issues"))
                {
                    ViewData["NATStatus"] = "WARNING";
                }
                else if (NATFeed1.Title.StartsWith("Service disruption"))
                {
                    ViewData["NATStatus"] = "CRITICAL";
                }
            }
            else
            {
                ViewData["NATStatus"] = "OK";
            }

            var RDSFeed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/rds-ap-southeast-1.rss");

            var RDSFeed1 = RDSFeed.Items.ElementAt(0);

            if (RDSFeed1.Title.StartsWith("Service is operating normally"))
            {
                ViewData["RDSStatus"] = "OK";
            }
            else if (RDSFeed1.Title.StartsWith("Informational message") || RDSFeed1.Title.StartsWith("Performance issues"))
            {
                ViewData["RDSStatus"] = "WARNING";
            }
            else if (RDSFeed1.Title.StartsWith("Service disruption"))
            {
                ViewData["RDSStatus"] = "CRITICAL";
            }

            var R53Feed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/route53.rss");

            var R53Feed1 = R53Feed.Items.ElementAt(0);

            if (R53Feed1.Title.StartsWith("Service is operating normally") || R53Feed1.Title.Contains("[RESOLVED]"))
            {
                ViewData["R53Status"] = "OK";
            }
            else if (R53Feed1.Title.StartsWith("Informational message") || R53Feed1.Title.StartsWith("Performance issues"))
            {
                ViewData["R53Status"] = "WARNING";
            }
            else if (R53Feed1.Title.StartsWith("Service disruption"))
            {
                ViewData["R53Status"] = "CRITICAL";
            }

            var SGFeed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/storagegateway-ap-southeast-1.rss");

            var SGFeed1 = SGFeed.Items.ElementAt(0);

            if (SGFeed1.Title.StartsWith("Service is operating normally"))
            {
                ViewData["SGStatus"] = "OK";
            }
            else if (SGFeed1.Title.StartsWith("Informational message") || SGFeed1.Title.StartsWith("Performance issues"))
            {
                ViewData["SGStatus"] = "WARNING";
            }
            else if (SGFeed1.Title.StartsWith("Service disruption"))
            {
                ViewData["SGStatus"] = "CRITICAL";
            }

            var S3Feed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/s3-ap-southeast-1.rss");

            var S3Feed1 = S3Feed.Items.ElementAt(0);

            if (S3Feed1.Title.StartsWith("Service is operating normally"))
            {
                ViewData["S3Status"] = "OK";
            }
            else if (S3Feed1.Title.StartsWith("Informational message") || S3Feed1.Title.StartsWith("Performance issues"))
            {
                ViewData["S3Status"] = "WARNING";
            }
            else if (S3Feed1.Title.StartsWith("Service disruption"))
            {
                ViewData["S3Status"] = "CRITICAL";
            }

            var VPCFeed = await FeedReader.ReadAsync("https://status.aws.amazon.com/rss/vpc-ap-southeast-1.rss");

            var VPCFeed1 = VPCFeed.Items.ElementAt(0);

            if (VPCFeed1.Title.StartsWith("Service is operating normally"))
            {
                ViewData["VPCStatus"] = "OK";
            }
            else if (VPCFeed1.Title.StartsWith("Informational message") || VPCFeed1.Title.StartsWith("Performance issues"))
            {
                ViewData["VPCStatus"] = "WARNING";
            }
            else if (VPCFeed1.Title.StartsWith("Service disruption"))
            {
                ViewData["VPCStatus"] = "CRITICAL";
            }

            DescribeAlarmsResponse response = await CWClient.DescribeAlarmsAsync();

            Boolean Flag = false;

            foreach (MetricAlarm a in response.MetricAlarms)
            {
                if (a.AlarmName.Contains("awsec2") && a.StateValue == StateValue.ALARM)
                {
                    Flag = true;
                    break;
                }
            }
            if (Flag == true)
            {
                ViewData["CWPlatformState"] = "ALARM";
            }
            else
            {
                ViewData["CWPlatformState"] = "OK";
            }

            Flag = false;
            foreach (MetricAlarm a in response.MetricAlarms)
            {
                if (a.AlarmName.Equals("eCTF Load Balancer HTTP 5XX Errors") && a.StateValue == StateValue.ALARM)
                {
                    Flag = true;
                    break;
                }
            }
            if (Flag == true)
            {
                ViewData["CWELBState"] = "ALARM";
            }
            else
            {
                ViewData["CWELBState"] = "OK";
            }

            if (_context.Servers.Count() != 0)
            {
                Flag = false;
                foreach (MetricAlarm a in response.MetricAlarms)
                {
                    if (a.AlarmName.Contains("-eCTFVM-") && a.StateValue == StateValue.ALARM)
                    {
                        Flag = true;
                        break;
                    }
                }
                if (Flag == true)
                {
                    ViewData["CWCSState"] = "ALARM";
                }
                else
                {
                    ViewData["CWCSState"] = "OK";
                }
            }
            if (_context.VPCs.ToList().Count == 0)
            {
                ViewData["MissingVPC"] = "YES";
            }
            else if (unFixable == true)
            {
                ViewData["MissingVPC"] = "UNFIXABLE";
            }
            else
            {
                ViewData["MissingVPC"] = "NO";
                List <Server> allServers = await _context.Servers.ToListAsync();

                ViewData["ServerTotalCount"] = allServers.Count();
                List <Server> errorServers = await _context.Servers.FromSql("SELECT * FROM dbo.Servers WHERE State = 4").ToListAsync();

                ViewData["ServerErrorCount"] = errorServers.Count();
                List <Server> runningServers = await _context.Servers.FromSql("SELECT * FROM dbo.Servers WHERE State = 1").ToListAsync();

                ViewData["ServerRunningCount"] = runningServers.Count();
                List <Subnet> allSubnets = await _context.Subnets.ToListAsync();

                ViewData["SubnetTotalCount"] = allSubnets.Count();
                if (errorServers.Count() == 0)
                {
                    ViewData["ServerHealth"] = "OK";
                }
                else
                {
                    ViewData["ServerHealth"] = "NOT OK";
                }

                List <Subnet> intranetSubnets = await _context.Subnets.FromSql("SELECT * FROM dbo.Subnets WHERE Type = 2").ToListAsync();

                ViewData["SubnetIntranetCount"] = intranetSubnets.Count();
                List <Subnet> extranetSubnets = await _context.Subnets.FromSql("SELECT * FROM dbo.Subnets WHERE Type = 1").ToListAsync();

                ViewData["SubnetExtranetCount"] = extranetSubnets.Count();
                List <Subnet> internetSubnets = await _context.Subnets.FromSql("SELECT * FROM dbo.Subnets WHERE Type = 0").ToListAsync();

                ViewData["SubnetInternetCount"] = internetSubnets.Count();
                List <Route> problemRoutes = await _context.Routes.FromSql("SELECT * FROM dbo.Routes WHERE Status = 1").ToListAsync();

                if (problemRoutes.Count() == 0)
                {
                    ViewData["RouteHealth"] = "OK";
                }
                else
                {
                    ViewData["RouteHealth"] = "NOT OK";
                }
            }
            return(View());
        }