diff options
Diffstat (limited to 'controller-server')
4 files changed, 28 insertions, 8 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java index da58c4ef2da..3a3fd445bcf 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java @@ -115,7 +115,12 @@ public class ZoneApiHandler extends LoggingRequestHandler { Slime slime = new Slime(); Cursor root = slime.setObject(); root.setString("name", region.value()); - root.setString("url", request.getUri().resolve("region").resolve(region.value()).toString()); + root.setString("url", request.getUri() + .resolve("/zone/v2/environment/") + .resolve(environment.value() + "/") + .resolve("region/") + .resolve(region.value()) + .toString()); return new SlimeJsonResponse(slime); } @@ -123,8 +128,4 @@ public class ZoneApiHandler extends LoggingRequestHandler { return ErrorResponse.notFoundError("Nothing at " + path); } - private static String url(HttpRequest request, String path) { - return request.getUri().resolve(path).toString(); - } - } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java index b4373532721..a00665b77cb 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java @@ -28,23 +28,38 @@ public class ZoneApiTest extends ControllerContainerTest { new Zone(Environment.staging, RegionName.from("us-north-4")) ); + private ContainerControllerTester tester; + @Before public void before() { ZoneRegistryMock zoneRegistry = (ZoneRegistryMock) container.components() .getComponent(ZoneRegistryMock.class.getName()); zoneRegistry.setDefaultRegionForEnvironment(Environment.dev, RegionName.from("us-north-2")) .setZones(zones); + this.tester = new ContainerControllerTester(container, responseFiles); } @Test - public void test_requests_v1() throws Exception { - ContainerControllerTester tester = new ContainerControllerTester(container, responseFiles); + public void test_requests() throws Exception { + // GET /zone/v1 tester.containerTester().assertResponse(new Request("http://localhost:8080/zone/v1"), new File("root.json")); + + // GET /zone/v1/environment/prod tester.containerTester().assertResponse(new Request("http://localhost:8080/zone/v1/environment/prod"), new File("prod.json")); + + // GET /zone/v1/environment/dev/default tester.containerTester().assertResponse(new Request("http://localhost:8080/zone/v1/environment/dev/default"), new File("default-for-region.json")); } + @Test + public void test_invalid_requests() throws Exception { + // GET /zone/v1/environment/prod/default: No default region + tester.containerTester().assertResponse(new Request("http://localhost:8080/zone/v1/environment/prod/default"), + new File("no-default-region.json"), + 400); + } + } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/default-for-region.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/default-for-region.json index ea7709dec98..7c4a7e2b4a5 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/default-for-region.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/default-for-region.json @@ -1,4 +1,4 @@ { "name": "us-north-2", - "url": "http://localhost:8080/zone/v1/environment/dev/us-north-2" + "url": "http://localhost:8080/zone/v2/environment/dev/region/us-north-2" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/no-default-region.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/no-default-region.json new file mode 100644 index 00000000000..bdc6601a2e9 --- /dev/null +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/no-default-region.json @@ -0,0 +1,4 @@ +{ + "error-code": "BAD_REQUEST", + "message": "No default region for environment: prod" +} |