diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-06-28 14:42:17 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-06-28 14:42:17 +0200 |
commit | 9dd4924299c388aa502878ae1c84a1e120a30f61 (patch) | |
tree | 0d85886609eba0e19f2dc1cc982adc7c0d1c2277 /config-model-api | |
parent | 6f01029ff835739c3aa1df78da4cc396633efa1c (diff) |
Do valiation when checking allows
Diffstat (limited to 'config-model-api')
3 files changed, 4 insertions, 2 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json index 735778f4d46..ba5f994ecd6 100644 --- a/config-model-api/abi-spec.json +++ b/config-model-api/abi-spec.json @@ -594,6 +594,7 @@ "public void invalid(com.yahoo.config.application.api.ValidationId, java.lang.String, 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 boolean validate(java.time.Instant)", "public java.lang.String xmlForm()", "public static java.lang.String toAllowMessage(com.yahoo.config.application.api.ValidationId)", "public static com.yahoo.config.application.api.ValidationOverrides fromXml(java.io.Reader)", 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 82601e6685b..d79aaef1ab5 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 @@ -49,7 +49,6 @@ public class ValidationOverrides { private ValidationOverrides(List<Allow> overrides, String xmlForm) { this.overrides = ImmutableList.copyOf(overrides); this.xmlForm = xmlForm; - validate(Instant.now()); } /** Throws a ValidationException unless all given validation is overridden at this time */ @@ -74,6 +73,7 @@ public class ValidationOverrides { /** Returns whether the given (assumed invalid) change is allowed by this at the moment */ public boolean allows(ValidationId validationId, Instant now) { + validate(now); for (Allow override : overrides) { if (override.allows(validationId, now)) return true; 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 f7ef059c5f2..81adef1cfea 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 @@ -61,10 +61,11 @@ public class ValidationOverrideTest { ValidationOverrides overrides = ValidationOverrides.fromXml(new StringReader(validationOverrides)); Instant now = ManualClock.at("2000-01-01T23:59:00"); overrides.allows("indexing-change", now); + overrides.validate(now); Assert.fail("Expected validation interval override validation validation failure"); } catch (IllegalArgumentException e) { - Assert.assertEquals("allow 'indexing-change' until 2000-02-03T00:00:00Z is too far in the future: Max 30 days is allowed", + Assert.assertEquals("validation-overrides is invalid: allow 'indexing-change' until 2000-02-03T00:00:00Z is too far in the future: Max 30 days is allowed", e.getMessage()); } } |