summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-06-28 14:42:17 +0200
committerHarald Musum <musum@verizonmedia.com>2021-06-28 14:42:17 +0200
commit9dd4924299c388aa502878ae1c84a1e120a30f61 (patch)
tree0d85886609eba0e19f2dc1cc982adc7c0d1c2277 /config-model-api
parent6f01029ff835739c3aa1df78da4cc396633efa1c (diff)
Do valiation when checking allows
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/abi-spec.json1
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java2
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/ValidationOverrideTest.java3
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());
}
}