summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-10-17 11:26:48 +0200
committerMartin Polden <mpolden@mpolden.no>2019-10-17 12:36:58 +0200
commit8600326872a0ec7a5a7150c01f78a8933c49b8b6 (patch)
tree063fe303ac6a09967ac5086316115253c3c895f8 /config-model-api
parenta687ead62f2226958327dc37a172f355f73b88f3 (diff)
Require validation override for destructive endpoint changes
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/abi-spec.json6
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/Endpoint.java11
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java3
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;