diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-01-04 22:52:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-04 22:52:36 +0100 |
commit | d8b50e4eaea708fed984c7c6ccdd06ac48b358bf (patch) | |
tree | 5ac11755dbe8998c2b3f4dc5cae8859b0a2e1b9f /config-model-api | |
parent | b19ccf2585d6625778c4508ddcc614d41e71caaa (diff) | |
parent | e610210317a4d21ae0187111d663ccc983b4354d (diff) |
Merge pull request #29803 from vespa-engine/revert-29797-jonmv/refactor-validation
Revert "Jonmv/refactor validation" MERGEOK
Diffstat (limited to 'config-model-api')
3 files changed, 9 insertions, 29 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json index 79283641074..e1081ebec99 100644 --- a/config-model-api/abi-spec.json +++ b/config-model-api/abi-spec.json @@ -786,10 +786,8 @@ "public void <init>(java.util.List)", "public void invalid(java.util.Map, java.time.Instant)", "public void invalid(com.yahoo.config.application.api.ValidationId, java.lang.String, java.time.Instant)", - "public java.util.Optional invalidException(java.util.Map, java.time.Instant)", "public boolean allows(java.lang.String, java.time.Instant)", "public boolean allows(com.yahoo.config.application.api.ValidationId, java.time.Instant)", - "public void validate(java.time.Instant, java.util.function.Consumer)", "public boolean validate(java.time.Instant)", "public java.lang.String xmlForm()", "public static java.lang.String toAllowMessage(com.yahoo.config.application.api.ValidationId)", 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 ab722dfb919..7b52d825473 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,7 +19,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -50,7 +49,10 @@ public class ValidationOverrides { /** Throws a ValidationException unless all given validation is overridden at this time */ public void invalid(Map<ValidationId, ? extends Collection<String>> messagesByValidationId, Instant now) { - invalidException(messagesByValidationId, now).ifPresent(e -> { throw e; }); + Map<ValidationId, Collection<String>> disallowed = new HashMap<>(messagesByValidationId); + disallowed.keySet().removeIf(id -> allows(id, now)); + if ( ! disallowed.isEmpty()) + throw new ValidationException(disallowed); } /** Throws a ValidationException unless this validation is overridden at this time */ @@ -59,21 +61,6 @@ public class ValidationOverrides { throw new ValidationException(validationId, message); } - public Optional<ValidationException> invalidException(Map<ValidationId, ? extends Collection<String>> messagesByValidationId, Instant now) { - Map<ValidationId, Collection<String>> disallowed = new HashMap<>(messagesByValidationId); - disallowed.keySet().removeIf(id -> allows(id, now)); - - if (disallowed.size() == 1 && disallowed.values().iterator().next().size() == 1) // Single-message form if possible. - return Optional.of(new ValidationException(disallowed.keySet().iterator().next(), - disallowed.values().iterator().next().iterator().next())); - - if ( ! disallowed.isEmpty()) - return Optional.of(new ValidationException(disallowed)); - - return Optional.empty(); - } - - // TODO: remove after 8.284 is gone public boolean allows(String validationIdString, Instant now) { Optional<ValidationId> validationId = ValidationId.from(validationIdString); if (validationId.isEmpty()) return false; // unknown id -> not allowed @@ -90,17 +77,12 @@ public class ValidationOverrides { } /** Validates overrides (checks 'until' date') */ - public void validate(Instant now, Consumer<String> reporter) { + public boolean validate(Instant now) { for (Allow override : overrides) { if (now.plus(Duration.ofDays(30)).isBefore(override.until)) - reporter.accept("validation-overrides is invalid: " + override + - " is too far in the future: Max 30 days is allowed"); + throw new IllegalArgumentException("validation-overrides is invalid: " + override + + " is too far in the future: Max 30 days is allowed"); } - } - - /** Validates overrides (checks 'until' date') */ - public boolean validate(Instant now) { - validate(now, message -> { throw new IllegalArgumentException(message); }); return false; } diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java index 417d7b2ff36..b1b7928c67a 100644 --- a/config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java +++ b/config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java @@ -60,7 +60,7 @@ public class ValidationOverrideTest { try { ValidationOverrides overrides = ValidationOverrides.fromXml(new StringReader(validationOverrides)); Instant now = ManualClock.at("2000-01-01T23:59:00"); - overrides.allows(ValidationId.indexingChange, now); + overrides.allows("indexing-change", now); overrides.validate(now); Assert.fail("Expected validation interval override validation validation failure"); } @@ -80,7 +80,7 @@ public class ValidationOverrideTest { try { ValidationOverrides overrides = ValidationOverrides.fromXml(new StringReader(validationOverrides)); Instant now = ManualClock.at("2000-01-01T23:59:00"); - overrides.allows(ValidationId.indexingChange, now); + overrides.allows("indexing-change", now); overrides.validate(now); Assert.fail("Expected validation interval override validation validation failure"); } |