diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-05-27 10:49:05 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-05-27 10:49:05 +0200 |
commit | 8d442c3f2872561817b5ae523902a03286e57c77 (patch) | |
tree | 472bee4cff5b6f6d92b72789e25281e97aa93bf8 | |
parent | 1b8db1a592d2523f5253e51c79e6650a79ba8f30 (diff) |
Log validation override deactivation to deploy log
3 files changed, 29 insertions, 3 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json index 1b494379413..acde86824b8 100644 --- a/config-model-api/abi-spec.json +++ b/config-model-api/abi-spec.json @@ -467,6 +467,21 @@ ], "fields": [] }, + "com.yahoo.config.application.api.ValidationOverrides$AllowAllValidationOverrides": { + "superClass": "com.yahoo.config.application.api.ValidationOverrides", + "interfaces": [], + "attributes": [ + "public" + ], + "methods": [ + "public void <init>()", + "public void <init>(com.yahoo.config.application.api.DeployLogger)", + "public boolean allows(com.yahoo.config.application.api.ValidationId, java.time.Instant)", + "public java.lang.String xmlForm()", + "public java.lang.String toString()" + ], + "fields": [] + }, "com.yahoo.config.application.api.ValidationOverrides$ValidationException": { "superClass": "java.lang.IllegalArgumentException", "interfaces": [], 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 e076ffd0f10..7514a66e282 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 @@ -16,6 +16,7 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -172,16 +173,26 @@ public class ValidationOverrides { } - private static class AllowAllValidationOverrides extends ValidationOverrides { + public static class AllowAllValidationOverrides extends ValidationOverrides { + private final DeployLogger logger; + + /** Create an instance of this which doesn't log */ public AllowAllValidationOverrides() { + this(null); + } + + /** Creates an instance of this which logs what is allows to the given deploy logger */ + public AllowAllValidationOverrides(DeployLogger logger) { super(List.of()); + this.logger = logger; } /** Returns whether the given (assumed invalid) change is allowed by this at the moment */ @Override public boolean allows(ValidationId validationId, Instant now) { - log.warning("Possibly destructive change '" + validationId + "' allowed"); + if (logger != null) + logger.log(Level.WARNING, "Possibly destructive change '" + validationId + "' allowed"); return true; } diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java index 7a981cd6a53..22cc2032881 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java @@ -123,7 +123,7 @@ public class DeployState implements ConfigDefinitionStore { this.validationOverrides = zone.environment().isManuallyDeployed() - ? ValidationOverrides.all // Don't protect manually deployed zones + ? new ValidationOverrides.AllowAllValidationOverrides(deployLogger) // Don't protect manually deployed zones : applicationPackage.getValidationOverrides().map(ValidationOverrides::fromXml) .orElse(ValidationOverrides.empty); |