summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-08-23 10:53:21 +0200
committerMartin Polden <mpolden@mpolden.no>2022-08-23 12:15:21 +0200
commitfd1da43cbf6a1df0e98ed3f4a91c5566682e1c7a (patch)
tree531ed54d516000f0cdbbc9442c23f177fe90f233
parentb3342e4388abe12660d60e0f3e934c03f1a322b8 (diff)
Use requireZone
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Environment.java31
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java7
2 files changed, 20 insertions, 18 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Environment.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Environment.java
index 5ce43f6f2d7..2d3d5e062f7 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Environment.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Environment.java
@@ -47,26 +47,25 @@ public enum Environment {
/** Returns the environment name from the string value returned by value() */
public static Environment from(String value) {
- switch(value) {
- case "prod" : return prod;
- case "staging" : return staging;
- case "test" : return test;
- case "dev" : return dev;
- case "perf" : return perf;
- default : throw new IllegalStateException("'" + value + "' is not a valid environment identifier");
- }
+ return switch (value) {
+ case "prod" -> prod;
+ case "staging" -> staging;
+ case "test" -> test;
+ case "dev" -> dev;
+ case "perf" -> perf;
+ default -> throw new IllegalArgumentException("'" + value + "' is not a valid environment identifier");
+ };
}
/** Returns a name of this which is used in external API's and stored in persistent stores */
public String value() {
- switch(this) {
- case prod : return "prod";
- case staging : return "staging";
- case test : return "test";
- case dev : return "dev";
- case perf : return "perf";
- default : throw new IllegalStateException();
- }
+ return switch (this) {
+ case prod -> "prod";
+ case staging -> "staging";
+ case test -> "test";
+ case dev -> "dev";
+ case perf -> "perf";
+ };
}
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index 7e186cbe34c..8901e428ea1 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -1028,7 +1028,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
var awsRegion = request.getProperty("aws-region");
var parameterName = request.getProperty("parameter-name");
var applicationId = ApplicationId.fromFullString(request.getProperty("application-id"));
- var zoneId = ZoneId.from(request.getProperty("zone"));
+ var zoneId = requireZone(ZoneId.from(request.getProperty("zone")));
var deploymentId = new DeploymentId(applicationId, zoneId);
var tenant = controller.tenants().require(applicationId.tenant(), CloudTenant.class);
@@ -2949,7 +2949,10 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
}
private ZoneId requireZone(String environment, String region) {
- ZoneId zone = ZoneId.from(environment, region);
+ return requireZone(ZoneId.from(environment, region));
+ }
+
+ private ZoneId requireZone(ZoneId zone) {
// TODO(mpolden): Find a way to not hardcode this. Some APIs allow this "virtual" zone, e.g. /logs
if (zone.environment() == Environment.prod && zone.region().value().equals("controller")) {
return zone;