summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2022-08-25 16:52:58 +0200
committerHåkon Hallingstad <hakon@yahooinc.com>2022-08-25 16:52:58 +0200
commitda876dfe79c23a33795a27bba99b4cf17c657b6a (patch)
tree74fe0249df0b8310c5c273bd476ac0ae0fdd1e3e
parenta105ffc48d22834af461cafd17da6e4bc8c7e715 (diff)
Avoid displaying some zones
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilter.java7
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java16
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java5
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/default-for-region.json2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/prod.json2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/root.json8
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"
}
]