diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-10-17 11:26:48 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-10-17 12:36:58 +0200 |
commit | 8600326872a0ec7a5a7150c01f78a8933c49b8b6 (patch) | |
tree | 063fe303ac6a09967ac5086316115253c3c895f8 /config-model-api | |
parent | a687ead62f2226958327dc37a172f355f73b88f3 (diff) |
Require validation override for destructive endpoint changes
Diffstat (limited to 'config-model-api')
3 files changed, 15 insertions, 5 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json index d08cda06e5d..affc94e2bcb 100644 --- a/config-model-api/abi-spec.json +++ b/config-model-api/abi-spec.json @@ -373,9 +373,10 @@ "public java.lang.String endpointId()", "public java.lang.String containerId()", "public java.util.Set regions()", + "public com.yahoo.config.application.api.Endpoint withRegions(java.util.Set)", "public boolean equals(java.lang.Object)", "public int hashCode()", - "public com.yahoo.config.application.api.Endpoint withRegions(java.util.Set)" + "public java.lang.String toString()" ], "fields": [] }, @@ -518,7 +519,8 @@ "public static final enum com.yahoo.config.application.api.ValidationId configModelVersionMismatch", "public static final enum com.yahoo.config.application.api.ValidationId skipOldConfigModels", "public static final enum com.yahoo.config.application.api.ValidationId forceAutomaticTenantUpgradeTests", - "public static final enum com.yahoo.config.application.api.ValidationId accessControl" + "public static final enum com.yahoo.config.application.api.ValidationId accessControl", + "public static final enum com.yahoo.config.application.api.ValidationId globalEndpointChange" ] }, "com.yahoo.config.application.api.ValidationOverrides$Allow": { diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/Endpoint.java b/config-model-api/src/main/java/com/yahoo/config/application/api/Endpoint.java index e47dcd78219..99cb07f3104 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/Endpoint.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/Endpoint.java @@ -60,6 +60,10 @@ public class Endpoint { return regions; } + public Endpoint withRegions(Set<String> regions) { + return new Endpoint(endpointId, containerId, regions); + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -75,7 +79,10 @@ public class Endpoint { return Objects.hash(endpointId, containerId, regions); } - public Endpoint withRegions(Set<String> regions) { - return new Endpoint(endpointId, containerId, regions); + @Override + public String toString() { + return "endpoint '" + endpointId() + "' (cluster " + containerId + ") -> " + + regions.stream().map(RegionName::value).sorted().collect(Collectors.joining(", ")); } + } diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java index 65dc264eb8a..35ece71a72e 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java @@ -22,7 +22,8 @@ public enum ValidationId { configModelVersionMismatch("config-model-version-mismatch"), // Internal use skipOldConfigModels("skip-old-config-models"), // Internal use forceAutomaticTenantUpgradeTests("force-automatic-tenant-upgrade-test"), // Internal use - accessControl("access-control"); // Internal use, used in zones where there should be no access-control + accessControl("access-control"), // Internal use, used in zones where there should be no access-control + globalEndpointChange("global-endpoint-change"); // Changing global endpoints private final String id; |