summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon@verizonmedia.com>2021-02-05 09:20:09 +0100
committerGitHub <noreply@github.com>2021-02-05 09:20:09 +0100
commit3784bfd243aedb0d8a737cf154d1f5fd43a93746 (patch)
treee588e2050f270610aa2676b984043d35a97c4ce5
parent147115c0242f0ebd3614fe0afa83f32cfdfd66af (diff)
parenteaad3c822dc97e883dc9ff41412c53402989bafc (diff)
Merge pull request #16394 from vespa-engine/bjorncs/system-feature-flags
Include files for unreachable zones when creating archive
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/FlagsTarget.java6
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java2
-rw-r--r--controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchiveTest.java1
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java2
4 files changed, 7 insertions, 4 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/FlagsTarget.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/FlagsTarget.java
index 1b7f84d1ec7..c5dc39cd8e0 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/FlagsTarget.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/FlagsTarget.java
@@ -5,6 +5,7 @@ import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.zone.ZoneApi;
import com.yahoo.config.provision.zone.ZoneId;
+import com.yahoo.config.provision.zone.ZoneList;
import com.yahoo.vespa.athenz.api.AthenzIdentity;
import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneRegistry;
@@ -37,10 +38,11 @@ public interface FlagsTarget {
Optional<AthenzIdentity> athenzHttpsIdentity();
String asString();
- static Set<FlagsTarget> getAllTargetsInSystem(ZoneRegistry registry) {
+ static Set<FlagsTarget> getAllTargetsInSystem(ZoneRegistry registry, boolean reachableOnly) {
SystemName system = registry.system();
Set<FlagsTarget> targets = new HashSet<>();
- for (ZoneApi zone : registry.zones().reachable().zones()) {
+ ZoneList filteredZones = reachableOnly ? registry.zones().reachable() : registry.zones().all();
+ for (ZoneApi zone : filteredZones.zones()) {
targets.add(forConfigServer(registry, zone.getId()));
}
targets.add(forController(system));
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java
index 57dafcd3291..850e14b25e8 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchive.java
@@ -163,7 +163,7 @@ public class SystemFlagsDataArchive {
private static Set<String> getFilenamesForSystem(ZoneRegistry systemDefinition) {
if (systemDefinition == null) return Set.of();
- return FlagsTarget.getAllTargetsInSystem(systemDefinition).stream()
+ return FlagsTarget.getAllTargetsInSystem(systemDefinition, false).stream()
.flatMap(target -> target.flagDataFilesPrioritized().stream())
.collect(Collectors.toSet());
}
diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchiveTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchiveTest.java
index d29657035c4..1f4eaf3e414 100644
--- a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchiveTest.java
+++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/SystemFlagsDataArchiveTest.java
@@ -288,6 +288,7 @@ public class SystemFlagsDataArchiveTest {
when(registryMock.getConfigServerHttpsIdentity(any())).thenReturn(new AthenzService("domain", "servicename"));
ZoneList zoneListMock = mock(ZoneList.class);
when(zoneListMock.reachable()).thenReturn(zoneListMock);
+ when(zoneListMock.all()).thenReturn(zoneListMock);
when(zoneListMock.zones()).thenReturn((List)List.of(new SimpleZone("prod.us-west-1"), new SimpleZone("prod.us-east-3")));
when(registryMock.zones()).thenReturn(zoneListMock);
return registryMock;
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java
index 129f1e109df..7c39787e295 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java
@@ -33,7 +33,7 @@ public class SystemFlagsHandler extends LoggingRequestHandler {
ServiceIdentityProvider identityProvider,
Executor executor) {
super(executor);
- this.deployer = new SystemFlagsDeployer(identityProvider, zoneRegistry.system(), FlagsTarget.getAllTargetsInSystem(zoneRegistry));
+ this.deployer = new SystemFlagsDeployer(identityProvider, zoneRegistry.system(), FlagsTarget.getAllTargetsInSystem(zoneRegistry, true));
}
@Override