diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-06-29 13:11:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-29 13:11:08 +0200 |
commit | 732a55c8508ce437e7d7fe5c50285b6a082bff44 (patch) | |
tree | 7488ee501e7514a150743f9725283a02b6010920 /config-model-api/src | |
parent | e6b40f2735a4240ecdc3b2fdc511f720d1898ef2 (diff) |
Revert "Remove dead code" (#18453)
Diffstat (limited to 'config-model-api/src')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java | 44 |
1 files changed, 44 insertions, 0 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 af3cf4175cf..42a47781251 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 @@ -19,6 +19,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.logging.Level; import java.util.stream.Collectors; /** @@ -33,6 +34,9 @@ public class ValidationOverrides { 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 */ + public static final ValidationOverrides all = new AllowAllValidationOverrides(); + private final List<Allow> overrides; private final String xmlForm; @@ -176,4 +180,44 @@ public class ValidationOverrides { } + // TODO: Remove this class after June 2021 + 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, null); + } + + /** Creates an instance of this which logs what is allows to the given deploy 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) { + return true; + } + + /** Returns the XML form of this, or null if it was not created by fromXml, nor is empty */ + @Override + public String xmlForm() { return null; } + + @Override + public String toString() { return "(A validation override which allows everything)"; } + + } + } |