diff options
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/" + } + ] +} |