aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2019-11-01 09:28:05 +0100
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-11-01 09:28:05 +0100
commit058812ebc1baec63de17c700b22ff806809e69e0 (patch)
treedf60464a9135d31f39e7bef31a35a7077453bc03
parentbc97d8b0ccd40974dce1589f6bf5fbc2beaf28f9 (diff)
Add optional /api prefix
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandler.java5
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandlerTest.java2
4 files changed, 8 insertions, 4 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
index 04ac3f421de..f8b4d4171a4 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/PathGroup.java
@@ -20,7 +20,8 @@ import java.util.Set;
enum PathGroup {
/** Paths exclusive to operators (including read), used for system management. */
- classifiedOperator("/configserver/v1/{*}"),
+ classifiedOperator(Optional.of("/api"),
+ "/configserver/v1/{*}"),
/** Paths used for system management by operators. */
operator("/controller/v1/{*}",
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandler.java
index 0fcf705a7ce..f23161664a2 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandler.java
@@ -35,6 +35,7 @@ import java.util.stream.Stream;
@SuppressWarnings("unused")
public class ConfigServerApiHandler extends AuditLoggingRequestHandler {
+ private static final String OPTIONAL_PREFIX = "/api";
private static final ZoneId CONTROLLER_ZONE = ZoneId.from("prod", "controller");
private static final List<String> WHITELISTED_APIS = List.of("/flags/v1/", "/nodes/v2/", "/orchestrator/v1/");
@@ -72,7 +73,7 @@ public class ConfigServerApiHandler extends AuditLoggingRequestHandler {
}
private HttpResponse get(HttpRequest request) {
- Path path = new Path(request.getUri());
+ Path path = new Path(request.getUri(), OPTIONAL_PREFIX);
if (path.matches("/configserver/v1")) {
return root(request);
}
@@ -80,7 +81,7 @@ public class ConfigServerApiHandler extends AuditLoggingRequestHandler {
}
private HttpResponse proxy(HttpRequest request) {
- Path path = new Path(request.getUri());
+ Path path = new Path(request.getUri(), OPTIONAL_PREFIX);
if ( ! path.matches("/configserver/v1/{environment}/{region}/{*}")) {
return ErrorResponse.notFoundError("Nothing at " + path);
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java
index 07da3807f91..1a53920e8de 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ControllerContainerTest.java
@@ -99,6 +99,8 @@ public class ControllerContainerTest {
" <handler id='com.yahoo.vespa.hosted.controller.restapi.configserver.ConfigServerApiHandler'>\n" +
" <binding>http://*/configserver/v1</binding>\n" +
" <binding>http://*/configserver/v1/*</binding>\n" +
+ " <binding>http://*/api/configserver/v1</binding>\n" +
+ " <binding>http://*/api/configserver/v1/*</binding>\n" +
" </handler>\n" +
" <handler id='com.yahoo.vespa.hosted.controller.restapi.flags.AuditedFlagsHandler'>\n" +
" <binding>http://*/flags/v1</binding>\n" +
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandlerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandlerTest.java
index af10f8e9c49..27af81ef1f9 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandlerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/configserver/ConfigServerApiHandlerTest.java
@@ -68,7 +68,7 @@ public class ConfigServerApiHandlerTest extends ControllerContainerTest {
assertLastRequest("https://cfg.prod.us-north-1.test.vip:4443/", "PUT");
// DELETE /configserver/v1/prod/us-north-1/nodes/v2/node/node1
- tester.containerTester().assertResponse(operatorRequest("http://localhost:8080/configserver/v1/prod/controller/nodes/v2/node/node1",
+ tester.containerTester().assertResponse(operatorRequest("http://localhost:8080/api/configserver/v1/prod/controller/nodes/v2/node/node1",
"", Request.Method.DELETE), "ok");
assertLastRequest("https://api.tld:4443/", "DELETE");