diff options
Diffstat (limited to 'config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java index 7514a66e282..bcf2ce3999a 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java @@ -29,8 +29,6 @@ import java.util.logging.Logger; */ public class ValidationOverrides { - private static final Logger log = Logger.getLogger(ValidationOverrides.class.getName()); - public static final ValidationOverrides empty = new ValidationOverrides(ImmutableList.of(), "<validation-overrides/>"); /** A special instance which behaves as if it contained a valid allow override for every (valid) validation id */ @@ -51,7 +49,7 @@ public class ValidationOverrides { } /** Throws a ValidationException unless this validation is overridden at this time */ - public final void invalid(ValidationId validationId, String message, Instant now) { + public void invalid(ValidationId validationId, String message, Instant now) { if ( ! allows(validationId, now)) throw new ValidationException(validationId, message); } @@ -176,23 +174,30 @@ public class ValidationOverrides { public static class AllowAllValidationOverrides extends ValidationOverrides { private final DeployLogger logger; + private final ValidationOverrides wrapped; /** Create an instance of this which doesn't log */ public AllowAllValidationOverrides() { - this(null); + this(null, null); } /** Creates an instance of this which logs what is allows to the given deploy logger */ - public AllowAllValidationOverrides(DeployLogger logger) { + public AllowAllValidationOverrides(ValidationOverrides wrapped, DeployLogger logger) { super(List.of()); + this.wrapped = wrapped; this.logger = logger; } + @Override + public void invalid(ValidationId validationId, String message, Instant now) { + // Log if would otherwise be invalid + if (wrapped != null && logger != null && ! wrapped.allows(validationId, now)) + logger.log(Level.WARNING, "Possibly destructive change '" + validationId + "' allowed"); + } + /** Returns whether the given (assumed invalid) change is allowed by this at the moment */ @Override public boolean allows(ValidationId validationId, Instant now) { - if (logger != null) - logger.log(Level.WARNING, "Possibly destructive change '" + validationId + "' allowed"); return true; } |