aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java2
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java12
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneApiMock.java10
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java18
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java4
6 files changed, 31 insertions, 18 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java b/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java
index 3e75842984f..c6ace00b90c 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java
@@ -35,7 +35,7 @@ public interface ZoneList extends ZoneFilter {
/** Returns the ZoneIds of all zones in this list. */
default List<ZoneId> ids() {
- return zones().stream().map(ZoneApi::getId).collect(Collectors.toList());
+ return zones().stream().map(ZoneApi::getVirtualId).collect(Collectors.toList());
}
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java
index 7ac7a36d742..8b4c00e9b9d 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java
@@ -37,6 +37,9 @@ public interface ZoneRegistry {
/** Returns a list containing the id of all zones in this registry */
ZoneFilter zones();
+ /** Returns a list containing the id of all zones in this registry, including the system. */
+ ZoneFilter zonesIncludingSystem();
+
/** Returns the default region for the given environment, if one is configured */
Optional<RegionName> getDefaultRegion(Environment environment);
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java
index 0c2324d1a0d..bd69ea41b05 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java
@@ -18,7 +18,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import static java.util.stream.Collectors.groupingBy;
@@ -47,14 +46,11 @@ public class ArchiveAccessMaintainer extends ControllerMaintainer {
@Override
protected double maintain() {
// Count buckets - so we can alert if we get close to the account limit of 1000
- Stream.concat(Stream.of(zoneRegistry.systemZone().getVirtualId()),
- zoneRegistry.zones().all().ids().stream())
- .forEach(zoneId -> metric.set(bucketCountMetricName, archiveBucketDb.buckets(zoneId).size(),
- metric.createContext(Map.of("zone", zoneId.value()))));
+ zoneRegistry.zonesIncludingSystem().all().ids().forEach(zoneId ->
+ metric.set(bucketCountMetricName, archiveBucketDb.buckets(zoneId).size(),
+ metric.createContext(Map.of("zone", zoneId.value()))));
- Stream.concat(Stream.of(zoneRegistry.systemZone()),
- zoneRegistry.zones().controllerUpgraded().zones().stream())
- .forEach(z -> {
+ zoneRegistry.zonesIncludingSystem().controllerUpgraded().zones().forEach(z -> {
ZoneId zoneId = z.getVirtualId();
try {
var tenantArchiveAccessRoles = cloudTenantArchiveExternalAccessRoles();
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneApiMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneApiMock.java
index 9e08e774744..d173fcb0e18 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneApiMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneApiMock.java
@@ -35,15 +35,15 @@ public class ZoneApiMock implements ZoneApi {
}
public static ZoneApiMock fromId(String id) {
- return newBuilder().withId(id).build();
+ return from(ZoneId.from(id));
}
public static ZoneApiMock from(Environment environment, RegionName region) {
- return newBuilder().with(ZoneId.from(environment, region)).build();
+ return from(ZoneId.from(environment, region));
}
- public static ZoneApiMock from(ZoneId zone) {
- return newBuilder().with(zone).build();
+ public static ZoneApiMock from(ZoneId id) {
+ return newBuilder().with(id).build();
}
@Override
@@ -80,7 +80,7 @@ public class ZoneApiMock implements ZoneApi {
private SystemName systemName = SystemName.defaultSystem();
private ZoneId id = ZoneId.defaultId();
- private ZoneId virtualId ;
+ private ZoneId virtualId = null;
private CloudName cloudName = CloudName.defaultName();
private String cloudNativeRegionName = id.region().value();
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java
index 5b8e25cbfe8..849503ae8d1 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java
@@ -25,6 +25,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneRegistry;
import java.net.URI;
import java.time.Duration;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -51,7 +52,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry
/**
* This sets the default list of zones contained in this. If your test need a particular set of zones, use
- * {@link #setZones(List)} instead of changing the default set.}
+ * {@link #setZones(List)} instead of changing the default set.
*/
public ZoneRegistryMock(SystemName system) {
this.system = system;
@@ -156,6 +157,21 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry
}
@Override
+ public ZoneFilter zonesIncludingSystem() {
+ var fullZones = new ArrayList<ZoneApi>(1 + zones.size());
+ fullZones.add(systemAsZone());
+ fullZones.addAll(zones);
+ return ZoneFilterMock.from(fullZones, zoneRoutingMethods, reprovisionToUpgradeOs);
+ }
+
+ private ZoneApiMock systemAsZone() {
+ return ZoneApiMock.newBuilder()
+ .with(ZoneId.from("prod.us-east-1"))
+ .withVirtualId(ZoneId.from("prod.controller"))
+ .build();
+ }
+
+ @Override
public AthenzService getConfigServerHttpsIdentity(ZoneId zone) {
return new AthenzService("vespadomain", "provider-" + zone.environment().value() + "-" + zone.region().value());
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java
index e73d66b0329..5571f957e83 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java
@@ -17,7 +17,6 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@@ -49,8 +48,7 @@ public class ArchiveAccessMaintainerTest {
assertEquals(Set.of(tenant1role), archiveService.authorizedIamRolesForKey.get(testBucket.keyArn()));
var expected = Map.of("archive.bucketCount",
- Stream.concat(Stream.of(tester.controller().zoneRegistry().systemZone().getVirtualId()),
- tester.controller().zoneRegistry().zones().all().ids().stream())
+ tester.controller().zoneRegistry().zonesIncludingSystem().all().ids().stream()
.collect(Collectors.toMap(
zone -> Map.of("zone", zone.value()),
zone -> zone.equals(testZone) ? 1d : 0d)));