aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2019-03-27 17:07:35 +0100
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2019-03-28 10:25:42 +0100
commit1df378b977d2379cb33701b47292ac3e0c377522 (patch)
tree7c73f5ea5374443959a0b17d412fc5b91b9ac51d /controller-server/src
parent8c9659eefed7e7ee91065d7c7a30de2875e31fb2 (diff)
Respond on athenz/v1/ with resources
Diffstat (limited to 'controller-server/src')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiHandler.java7
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiTest.java9
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/responses/root.json10
3 files changed, 21 insertions, 5 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiHandler.java
index 40619ca85c2..44164281411 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiHandler.java
@@ -14,6 +14,7 @@ import com.yahoo.vespa.hosted.controller.api.identifiers.PropertyId;
import com.yahoo.vespa.hosted.controller.api.integration.entity.EntityService;
import com.yahoo.vespa.hosted.controller.athenz.impl.AthenzFacade;
import com.yahoo.vespa.hosted.controller.restapi.ErrorResponse;
+import com.yahoo.vespa.hosted.controller.restapi.ResourceResponse;
import com.yahoo.vespa.hosted.controller.restapi.SlimeJsonResponse;
import com.yahoo.yolean.Exceptions;
@@ -60,6 +61,7 @@ public class AthenzApiHandler extends LoggingRequestHandler {
private HttpResponse get(HttpRequest request) {
Path path = new Path(request.getUri().getPath());
+ if (path.matches("/athenz/v1")) return root(request);
if (path.matches("/athenz/v1/domains")) return domainList(request);
if (path.matches("/athenz/v1/properties")) return properties();
@@ -67,6 +69,11 @@ public class AthenzApiHandler extends LoggingRequestHandler {
request.getUri().getPath()));
}
+ private HttpResponse root(HttpRequest request) {
+ return new ResourceResponse(request, "domains", "properties");
+ }
+
+
private HttpResponse properties() {
Slime slime = new Slime();
Cursor response = slime.setObject();
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiTest.java
index 82e3cde987a..371674ddb29 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/AthenzApiTest.java
@@ -23,15 +23,14 @@ public class AthenzApiTest extends ControllerContainerTest {
((AthenzClientFactoryMock) tester.container().components().getComponent(AthenzClientFactoryMock.class.getName()))
.getSetup().addDomain(new AthenzDbMock.Domain(new AthenzDomain("domain1")));
+ // GET root
+ tester.assertResponse(authenticatedRequest("http://localhost:8080/athenz/v1/"),
+ new File("root.json"));
+
// GET Athenz domains
tester.assertResponse(authenticatedRequest("http://localhost:8080/athenz/v1/domains"),
new File("athensDomain-list.json"));
- // GET root — nothing set up here
- tester.assertResponse(authenticatedRequest("http://localhost:8080/athenz/v1/"),
- "{\"error-code\":\"NOT_FOUND\",\"message\":\"No 'GET' handler at '/athenz/v1/'\"}",
- 404);
-
// GET properties
tester.assertResponse(authenticatedRequest("http://localhost:8080/athenz/v1/properties/"),
new File("property-list.json"));
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/responses/root.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/responses/root.json
new file mode 100644
index 00000000000..1947a27467f
--- /dev/null
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/responses/root.json
@@ -0,0 +1,10 @@
+{
+ "resources":[
+ {
+ "url":"http://localhost:8080/athenz/v1/domains/"
+ },
+ {
+ "url":"http://localhost:8080/athenz/v1/properties/"
+ }
+ ]
+}