aboutsummaryrefslogtreecommitdiffstats
path: root/config-model-api/src
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-06-29 13:11:08 +0200
committerGitHub <noreply@github.com>2021-06-29 13:11:08 +0200
commit732a55c8508ce437e7d7fe5c50285b6a082bff44 (patch)
tree7488ee501e7514a150743f9725283a02b6010920 /config-model-api/src
parente6b40f2735a4240ecdc3b2fdc511f720d1898ef2 (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.java44
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)"; }
+
+ }
+
}