summaryrefslogtreecommitdiffstats
path: root/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java
diff options
context:
space:
mode:
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.java19
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;
}