summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2017-11-21 11:41:22 +0100
committerMartin Polden <mpolden@mpolden.no>2017-11-22 14:45:04 +0100
commit915752ea8c1a9f6707c1fb13042a2426a54d26eb (patch)
tree4a630273ad4d041bd8ac95cd595fb0c4a9144509 /controller-server
parent59ccae15b25d21b50ca310793b1e91d3542b749d (diff)
Set correct URL in defaultRegion
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java11
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java19
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/default-for-region.json2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/no-default-region.json4
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"
+}