diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-09-14 13:25:52 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-09-14 13:39:18 +0200 |
commit | 460ed41a627741446785a38cbcc247d837bfff49 (patch) | |
tree | 598933764102d48cca10c4dec758d9edb96a7da9 /controller-server | |
parent | 56e82a8d44f957f18a2f82e5bcad6079a11cee2d (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.java | 18 |
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))) |