예제 #1
0
        public static HealthCheckResult Run()
        {
            var result = new HealthCheckResult("BidirectionalTaxonomyLeafsHaveValidValues");

            // Assume OK until we fail
            result.HealthCheckStatus = HealthCheckStatus.OK;

            try
            {
                // Run our normal tests. If they all run without issues, there are no problems.
                var taxonomyLeafTester = new TaxonomyBranchReclamationBiDirectionalTaxonomyLeafTests();
                taxonomyLeafTester.CanPullTheTaxonomyLeafForAllProjectsSuccessfully();
                taxonomyLeafTester.CanPullAllProjectsForTaxonomyHierarchySuccessfully();
                taxonomyLeafTester.EnsureOneAndOnlyOnePrimaryCawbsPerProjectCostAuthorityProjectsGroup();
                result.AddResultMessage("No problems detected with TaxonomyLeaf override correctness.");
            }
            catch (Exception e)
            {
                // Any exception here means we have a problem
                result.HealthCheckStatus = HealthCheckStatus.Critical;
                result.AddResultMessage(e.Message);
            }

            return(result);
        }
예제 #2
0
        /// <summary>
        /// We may want to do a version check on Google Chrome as well
        /// </summary>
        /// <returns></returns>
        //public const string ExpectedWhtmlToPdfVersionString = "0.12.5";

        public static HealthCheckResult Run()
        {
            var result = new HealthCheckResult("HeadlessGoogleChromeIsAvailable");

            // Assume success until we get failure
            result.HealthCheckStatus = HealthCheckStatus.OK;

            // Make sure we have HTTP context
            var currentHttpContext = HttpContext.Current;

            if (currentHttpContext == null)
            {
                result.HealthCheckStatus = HealthCheckStatus.Critical;
                result.AddResultMessage("Could not run check because missing HTTP context");
                return(result);
            }

            // Make sure Google Chrome .EXE exists where we expect it for this environment
            FileInfo googleChromeExecutablePathFileInfo = new FileInfo(SitkaConfiguration.GetRequiredAppSetting("HeadlessGoogleChromeExecutable"));

            if (!File.Exists(googleChromeExecutablePathFileInfo.FullName))
            {
                result.HealthCheckStatus = HealthCheckStatus.Critical;
                result.AddResultMessage($"Could not find Google Chrome .EXE at \"{googleChromeExecutablePathFileInfo.FullName}\"");
                return(result);
            }

            // We may want to do something like this for Google Chrome eventually; here for reference.

            //// If .EXE does exist, make sure it has the right version number
            //var versionString = WkhtmlToPdfCommandLineRunner.RunWkhtmlToPdfAndGetVersionNumber();

            //if (versionString != ExpectedWhtmlToPdfVersionString)
            //{
            //    result.HealthCheckStatus = HealthCheckStatus.Critical;
            //    string wkhtmlPdfExecutablePath = SitkaConfiguration.GetRequiredAppSetting("WkhtmltopdfExecutable");
            //    result.AddResultMessage($"Wkhtmltopdf found at {wkhtmlPdfExecutablePath} is version {versionString}; expected {ExpectedWhtmlToPdfVersionString}");

            //    return result;
            //}

            //result.AddResultMessage($"Wkhtmltopdf is expected version ({versionString})");

            result.AddResultMessage($"Google Chrome appears to be installed where expected at {googleChromeExecutablePathFileInfo.FullName}");
            return(result);
        }
 protected static void CheckIndividualThread(HealthCheckResult returnHealthCheck, Thread thread, string threadName)
 {
     if (thread == null)
     {
         returnHealthCheck.Success = false;
         returnHealthCheck.AddResultMessage(string.Format("Error! {0} background thread is not working properly.  Thread reference is null.", threadName));
     }
     else if (ThreadUtility.IsValidThreadState(thread.ThreadState))
     {
         returnHealthCheck.AddResultMessage(string.Format("{0} background thread is working properly. Thread ID: {1}, Thread Name: {2}, Thread State: {3}", threadName, thread.ManagedThreadId, thread.Name, thread.ThreadState));
     }
     else
     {
         returnHealthCheck.Success = false;
         returnHealthCheck.AddResultMessage(string.Format("Error! {0} background thread is not working properly. Thread ID: {1}, Thread Name: {2}, Thread State: {3}", threadName, thread.ManagedThreadId, thread.Name, thread.ThreadState));
     }
 }
예제 #4
0
        public static HealthCheckResult Run()
        {
            var result             = new HealthCheckResult("SqlServerSpatialDllSeemsToWork");
            var currentHttpContext = HttpContext.Current;

            if (currentHttpContext == null)
            {
                result.HealthCheckStatus = HealthCheckStatus.Critical;
                result.AddResultMessage("Could not run check because missing HTTP context");
                return(result);
            }

            string resultMessage;

            result.HealthCheckStatus = CanSuccessfullyAccessSqlServerSpatialDll(out resultMessage) ? HealthCheckStatus.OK : HealthCheckStatus.Critical;
            result.AddResultMessage(resultMessage);
            return(result);
        }
예제 #5
0
        public static HealthCheckResult Run()
        {
            var result = new HealthCheckResult("Ogr2OgrIExeIsCorrectVersion");

            // Assume success until we get failure
            result.HealthCheckStatus = HealthCheckStatus.OK;

            var currentHttpContext = HttpContext.Current;

            if (currentHttpContext == null)
            {
                result.HealthCheckStatus = HealthCheckStatus.Critical;
                result.AddResultMessage("Could not run check because missing HTTP context");
                return(result);
            }

            if (!File.Exists(FirmaWebConfiguration.Ogr2OgrExecutable))
            {
                result.HealthCheckStatus = HealthCheckStatus.Critical;
                result.AddResultMessage($"Could not find Ogr2Ogr executable file at \"{FirmaWebConfiguration.Ogr2OgrExecutable}\"");
                return(result);
            }

            // This needs to come back

            /*
             * var versionString = LtInfo.Common.GdalOgr.Ogr2OgrCommandLineRunner.RunOgr2OgrAndGetVersionNumber(FirmaWebConfiguration.Ogr2OgrExecutable, FirmaWebConfiguration.HttpRuntimeExecutionTimeout.TotalMilliseconds);
             *
             * if (versionString != EXPECTED_OGR_VERSION_NUMBER_STRING)
             * {
             *  result.HealthCheckStatus = HealthCheckStatus.Critical;
             *  result.AddResultMessage($"Ogr2Ogr ({FirmaWebConfiguration.Ogr2OgrExecutable}) is version {versionString}; expected {EXPECTED_OGR_VERSION_NUMBER_STRING}");
             *  return result;
             * }
             *
             * result.AddResultMessage($"Ogr2Ogr ({FirmaWebConfiguration.Ogr2OgrExecutable}) is expected version ({versionString})");
             * return result;
             */

            // HACK
            result.AddResultMessage($"Ogr2Ogr ({FirmaWebConfiguration.Ogr2OgrExecutable}) is present, but version number NOT CHECKED!!!!");
            return(result);
        }