summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/archive/CuratorArchiveBucketDb.java18
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/Flags.java2
2 files changed, 11 insertions, 9 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 fc864333202..ca173437dd1 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,8 +5,8 @@ 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.BooleanFlag;
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;
@@ -46,28 +46,30 @@ public class CuratorArchiveBucketDb {
private final ArchiveService archiveService;
private final CuratorDb curatorDb;
- private final FlagSource flagSource;
+ private final BooleanFlag enableFlag;
private final SystemName system;
public CuratorArchiveBucketDb(Controller controller) {
this.archiveService = controller.serviceRegistry().archiveService();
this.curatorDb = controller.curator();
- this.flagSource = controller.flagSource();
+ this.enableFlag = Flags.ENABLE_ONPREM_TENANT_S3_ARCHIVE.bindTo(controller.flagSource());
this.system = controller.zoneRegistry().system();
}
public Optional<URI> archiveUriFor(ZoneId zoneId, TenantName tenant) {
- if (enabled(zoneId)) {
+ if (enabled(zoneId, tenant)) {
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 boolean enabled(ZoneId zone, TenantName tenant) {
+ return system.isPublic() ||
+ enableFlag
+ .with(FetchVector.Dimension.ZONE_ID, zone.value())
+ .with(FetchVector.Dimension.TENANT_ID, tenant.value())
+ .value();
}
private String findOrAssignBucket(ZoneId zoneId, TenantName tenant) {
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
index 43d883b1759..065e07a0934 100644
--- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
+++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
@@ -288,7 +288,7 @@ public class Flags {
List.of("bjorncs"), "2021-09-14", "2021-12-31",
"Enable tenant S3 buckets in cd/main. Must be set on controller cluster only.",
"Takes effect immediately",
- ZONE_ID
+ ZONE_ID, TENANT_ID
);
/** WARNING: public for testing: All flags should be defined in {@link Flags}. */