aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-14 13:25:52 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-14 13:39:18 +0200
commit460ed41a627741446785a38cbcc247d837bfff49 (patch)
tree598933764102d48cca10c4dec758d9edb96a7da9 /controller-server
parent56e82a8d44f957f18a2f82e5bcad6079a11cee2d (diff)
Add feature flag to enable tenant s3 archive uploading
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/archive/CuratorArchiveBucketDb.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/archive/CuratorArchiveBucketDb.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/archive/CuratorArchiveBucketDb.java
index 52c192cfeab..3fcaefb81c7 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/archive/CuratorArchiveBucketDb.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/archive/CuratorArchiveBucketDb.java
@@ -5,6 +5,9 @@ import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.text.Text;
+import com.yahoo.vespa.flags.FetchVector;
+import com.yahoo.vespa.flags.FlagSource;
+import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.api.integration.archive.ArchiveBucket;
import com.yahoo.vespa.hosted.controller.api.integration.archive.ArchiveService;
@@ -41,23 +44,30 @@ public class CuratorArchiveBucketDb {
private final ArchiveService archiveService;
private final CuratorDb curatorDb;
- private final boolean enabled;
+ private final FlagSource flagSource;
+ private final SystemName system;
public CuratorArchiveBucketDb(Controller controller) {
this.archiveService = controller.serviceRegistry().archiveService();
this.curatorDb = controller.curator();
- SystemName system = controller.zoneRegistry().system();
- this.enabled = system.isPublic() || system.isCd();
+ this.flagSource = controller.flagSource();
+ this.system = controller.zoneRegistry().system();
}
public Optional<URI> archiveUriFor(ZoneId zoneId, TenantName tenant) {
- if (enabled) {
+ if (enabled(zoneId)) {
return Optional.of(URI.create(Text.format("s3://%s/%s/", findOrAssignBucket(zoneId, tenant), tenant.value())));
} else {
return Optional.empty();
}
}
+ private boolean enabled(ZoneId zone) {
+ return system.isPublic() || Flags.ENABLE_ONPREM_TENANT_S3_ARCHIVE.bindTo(flagSource)
+ .with(FetchVector.Dimension.ZONE_ID, zone.value())
+ .value();
+ }
+
private String findOrAssignBucket(ZoneId zoneId, TenantName tenant) {
return getBucketNameFromCache(zoneId, tenant)
.or(() -> findAndUpdateArchiveUriCache(zoneId, tenant, buckets(zoneId)))