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