diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2020-03-05 13:28:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-05 13:28:24 +0100 |
commit | 78d49cff9a3a69f9ef80d984502108d3f5298b08 (patch) | |
tree | d3f7dabbf7570d1b1f6c976261893ee5f5e68e90 | |
parent | 77ec4f2f04c3757de746e981e34e0f2b02cb5bd0 (diff) | |
parent | 1361b4520f31326be91f0671ab4984b5c54107bf (diff) |
Merge pull request #12454 from vespa-engine/jvenstad/404-on-non-existent-tenant
404 on listing applications for tenant which does not exist
2 files changed, 10 insertions, 0 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index aa4e2d97a27..5c1affbae12 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -48,6 +48,7 @@ import com.yahoo.vespa.hosted.controller.api.identifiers.TenantId; import com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServerException; import com.yahoo.vespa.hosted.controller.api.integration.configserver.Log; import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node; +import com.yahoo.vespa.hosted.controller.api.integration.configserver.NotFoundException; import com.yahoo.vespa.hosted.controller.api.integration.deployment.ApplicationVersion; import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobId; import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType; @@ -422,6 +423,9 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse applications(String tenantName, Optional<String> applicationName, HttpRequest request) { TenantName tenant = TenantName.from(tenantName); + if (controller.tenants().get(tenantName).isEmpty()) + return ErrorResponse.notFoundError("Tenant '" + tenantName + "' does not exist"); + Slime slime = new Slime(); Cursor applicationArray = slime.setArray(); for (Application application : controller.applications().asList(tenant)) { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index b488c0f9d0a..3ceaaac630a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -1039,6 +1039,12 @@ public class ApplicationApiTest extends ControllerContainerTest { "{\"error-code\":\"NOT_FOUND\",\"message\":\"Tenant 'tenant1' does not exist\"}", 404); + // GET non-existing tenant's applications + tester.assertResponse(request("/application/v4/tenant/tenant1/application", GET) + .userIdentity(USER_ID), + "{\"error-code\":\"NOT_FOUND\",\"message\":\"Tenant 'tenant1' does not exist\"}", + 404); + // GET non-existing application tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1", GET) .userIdentity(USER_ID), |