From 1df378b977d2379cb33701b47292ac3e0c377522 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Wed, 27 Mar 2019 17:07:35 +0100 Subject: Respond on athenz/v1/ with resources --- .../hosted/controller/restapi/athenz/AthenzApiHandler.java | 7 +++++++ .../vespa/hosted/controller/restapi/athenz/AthenzApiTest.java | 9 ++++----- .../vespa/hosted/controller/restapi/athenz/responses/root.json | 10 ++++++++++ 3 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/athenz/responses/root.json (limited to 'controller-server') 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/" + } + ] +} -- cgit v1.2.3