From 88ef1e081ff7ca498077558bf6dde61c580d64db Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 22 Jun 2021 15:02:34 -0600 Subject: [PATCH] merges v8 healthcheck changes from #5557 into netcore branch. --- .../HealthChecks/Checks/AbstractSettingsCheck.cs | 11 +++++++---- .../Checks/Configuration/NotificationEmailCheck.cs | 3 ++- .../HealthChecks/Checks/ProvidedValueValidation.cs | 12 ++++++++++++ src/Umbraco.Core/HealthChecks/HealthCheck.cs | 6 +++++- src/Umbraco.Core/HealthChecks/HealthCheckAction.cs | 14 +++++++++++++- 5 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 src/Umbraco.Core/HealthChecks/Checks/ProvidedValueValidation.cs diff --git a/src/Umbraco.Core/HealthChecks/Checks/AbstractSettingsCheck.cs b/src/Umbraco.Core/HealthChecks/Checks/AbstractSettingsCheck.cs index d51ba38e34..99b2ef2f97 100644 --- a/src/Umbraco.Core/HealthChecks/Checks/AbstractSettingsCheck.cs +++ b/src/Umbraco.Core/HealthChecks/Checks/AbstractSettingsCheck.cs @@ -1,4 +1,4 @@ -// Copyright (c) Umbraco. +// Copyright (c) Umbraco. // See LICENSE for more details. using System; @@ -85,10 +85,13 @@ namespace Umbraco.Cms.Core.HealthChecks.Checks } string resultMessage = string.Format(CheckErrorMessage, ItemPath, Values, CurrentValue); - return Task.FromResult(new HealthCheckStatus(resultMessage) + var healthCheckStatus = new HealthCheckStatus(resultMessage) { - ResultType = StatusResultType.Error, ReadMoreLink = ReadMoreLink - }.Yield()); + ResultType = StatusResultType.Error, + ReadMoreLink = ReadMoreLink + }; + + return Task.FromResult(healthCheckStatus.Yield()); } /// diff --git a/src/Umbraco.Core/HealthChecks/Checks/Configuration/NotificationEmailCheck.cs b/src/Umbraco.Core/HealthChecks/Checks/Configuration/NotificationEmailCheck.cs index 2a4fb1553c..b139cad710 100644 --- a/src/Umbraco.Core/HealthChecks/Checks/Configuration/NotificationEmailCheck.cs +++ b/src/Umbraco.Core/HealthChecks/Checks/Configuration/NotificationEmailCheck.cs @@ -1,4 +1,4 @@ -// Copyright (c) Umbraco. +// Copyright (c) Umbraco. // See LICENSE for more details. using System.Collections.Generic; @@ -9,6 +9,7 @@ using Umbraco.Extensions; namespace Umbraco.Cms.Core.HealthChecks.Checks.Configuration { + /// /// Health check for the recommended production configuration for Notification Email. /// diff --git a/src/Umbraco.Core/HealthChecks/Checks/ProvidedValueValidation.cs b/src/Umbraco.Core/HealthChecks/Checks/ProvidedValueValidation.cs new file mode 100644 index 0000000000..d99f05d738 --- /dev/null +++ b/src/Umbraco.Core/HealthChecks/Checks/ProvidedValueValidation.cs @@ -0,0 +1,12 @@ +// Copyright (c) Umbraco. +// See LICENSE for more details. + +namespace Umbraco.Cms.Core.HealthChecks.Checks +{ + public enum ProvidedValueValidation + { + None = 1, + Email = 2, + Regex = 3 + } +} diff --git a/src/Umbraco.Core/HealthChecks/HealthCheck.cs b/src/Umbraco.Core/HealthChecks/HealthCheck.cs index fb006d7fcf..010a093ca3 100644 --- a/src/Umbraco.Core/HealthChecks/HealthCheck.cs +++ b/src/Umbraco.Core/HealthChecks/HealthCheck.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Runtime.Serialization; using System.Threading.Tasks; @@ -44,6 +44,10 @@ namespace Umbraco.Cms.Core.HealthChecks /// Get the status for this health check /// /// + /// + /// If there are possible actions to take to rectify this check, this method must be overridden by a sub class + /// in order to explicitly provide those actions. + /// public abstract Task> GetStatus(); /// diff --git a/src/Umbraco.Core/HealthChecks/HealthCheckAction.cs b/src/Umbraco.Core/HealthChecks/HealthCheckAction.cs index 52ccc28ee0..bced91e985 100644 --- a/src/Umbraco.Core/HealthChecks/HealthCheckAction.cs +++ b/src/Umbraco.Core/HealthChecks/HealthCheckAction.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Runtime.Serialization; @@ -68,6 +68,18 @@ namespace Umbraco.Cms.Core.HealthChecks [DataMember(Name = "valueRequired")] public bool ValueRequired { get; set; } + /// + /// Indicates if a value required, how it is validated + /// + [DataMember(Name = "providedValueValidation")] + public string ProvidedValueValidation { get; set; } + + /// + /// Indicates if a value required, and is validated by a regex, what the regex to use is + /// + [DataMember(Name = "providedValueValidationRegex")] + public string ProvidedValueValidationRegex { get; set; } + /// /// Provides a value to rectify the issue ///