diff options
author | Håkon Hallingstad <hakon@yahooinc.com> | 2022-08-25 16:52:58 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@yahooinc.com> | 2022-08-25 16:52:58 +0200 |
commit | da876dfe79c23a33795a27bba99b4cf17c657b6a (patch) | |
tree | 74fe0249df0b8310c5c273bd476ac0ae0fdd1e3e | |
parent | a105ffc48d22834af461cafd17da6e4bc8c7e715 (diff) |
Avoid displaying some zones
6 files changed, 22 insertions, 18 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilter.java b/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilter.java index e65340aa59b..946a13879c4 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilter.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilter.java @@ -15,13 +15,16 @@ public interface ZoneFilter { /** Negates the next filter. */ ZoneFilter not(); + /** All zones defined in code, including those not yet set up. */ + ZoneList all(); + /** Zones where config servers are up and running. */ ZoneList reachable(); /** Zones which are upgraded by the controller. */ ZoneList controllerUpgraded(); - /** All zones from the initial pool. */ - ZoneList all(); + /** Zones for use by tenants. */ + ZoneList publiclyVisible(); } 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 320321080c8..e2c20929be5 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 @@ -19,7 +19,6 @@ import com.yahoo.yolean.Exceptions; import java.util.Comparator; import java.util.List; import java.util.logging.Level; -import java.util.stream.Collectors; /** * Read-only REST API that provides information about zones in hosted Vespa (version 1) @@ -69,19 +68,18 @@ public class ZoneApiHandler extends ThreadedHttpRequestHandler { } private HttpResponse root(HttpRequest request) { - List<Environment> environments = zoneRegistry.zones().all().zones().stream() + List<Environment> environments = zoneRegistry.zones().publiclyVisible().zones().stream() .map(ZoneApi::getEnvironment) .distinct() .sorted(Comparator.comparing(Environment::value)) - .collect(Collectors.toList()); + .toList(); Slime slime = new Slime(); Cursor root = slime.setArray(); environments.forEach(environment -> { Cursor object = root.addObject(); object.setString("name", environment.value()); - // Returning /zone/v2 is a bit strange, but that's what the original Jersey implementation did object.setString("url", request.getUri() - .resolve("/zone/v2/environment/") + .resolve("/zone/v1/environment/") .resolve(environment.value()) .toString()); }); @@ -91,13 +89,12 @@ public class ZoneApiHandler extends ThreadedHttpRequestHandler { private HttpResponse environment(HttpRequest request, Environment environment) { Slime slime = new Slime(); Cursor root = slime.setArray(); - zoneRegistry.zones().all().in(environment).zones().forEach(zone -> { + zoneRegistry.zones().publiclyVisible().all().in(environment).zones().forEach(zone -> { Cursor object = root.addObject(); object.setString("name", zone.getRegionName().value()); object.setString("url", request.getUri() - .resolve("/zone/v2/environment/") + .resolve("/zone/v2/") .resolve(environment.value() + "/") - .resolve("region/") .resolve(zone.getRegionName().value()) .toString()); }); @@ -111,9 +108,8 @@ public class ZoneApiHandler extends ThreadedHttpRequestHandler { Cursor root = slime.setObject(); root.setString("name", region.value()); root.setString("url", request.getUri() - .resolve("/zone/v2/environment/") + .resolve("/zone/v2/") .resolve(environment.value() + "/") - .resolve("region/") .resolve(region.value()) .toString()); return new SlimeJsonResponse(slime); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java index c87ac229c4b..5ec949dfe0c 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java @@ -51,6 +51,11 @@ public class ZoneFilterMock implements ZoneList { } @Override + public ZoneList publiclyVisible() { + return controllerUpgraded(); + } + + @Override public ZoneList controllerUpgraded() { return all(); } 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 7c4a7e2b4a5..99a9b3f6f7f 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/v2/environment/dev/region/us-north-2" + "url": "http://localhost:8080/zone/v2/dev/us-north-2" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/prod.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/prod.json index cebf48e6428..24350f9dbd4 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/prod.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/prod.json @@ -1,6 +1,6 @@ [ { "name": "us-north-1", - "url": "http://localhost:8080/zone/v2/environment/prod/region/us-north-1" + "url": "http://localhost:8080/zone/v2/prod/us-north-1" } ] diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/root.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/root.json index b3bd5247414..2121d121c44 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/root.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/root.json @@ -1,18 +1,18 @@ [ { "name": "dev", - "url": "http://localhost:8080/zone/v2/environment/dev" + "url": "http://localhost:8080/zone/v1/environment/dev" }, { "name": "prod", - "url": "http://localhost:8080/zone/v2/environment/prod" + "url": "http://localhost:8080/zone/v1/environment/prod" }, { "name": "staging", - "url": "http://localhost:8080/zone/v2/environment/staging" + "url": "http://localhost:8080/zone/v1/environment/staging" }, { "name": "test", - "url": "http://localhost:8080/zone/v2/environment/test" + "url": "http://localhost:8080/zone/v1/environment/test" } ] |