summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-09-02 08:40:25 +0200
committerHarald Musum <musum@verizonmedia.com>2020-09-02 08:40:25 +0200
commitbd58d42750440afc7cda7d26eeda135d8d07e02d (patch)
treeff67d19519cd80c41efb20003bfbbc1f4b27e7de /configserver
parent1cce6c15c29e59200aa9db5e7b61da4fabc25cf3 (diff)
Set USE_TENANT_META_DATA to true and stop using it in code
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java11
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java11
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java25
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java5
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainerTest.java5
5 files changed, 9 insertions, 48 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
index 6a3a715e58d..eb13baf3e6b 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
@@ -65,9 +65,7 @@ import com.yahoo.vespa.config.server.tenant.TenantRepository;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.Lock;
import com.yahoo.vespa.defaults.Defaults;
-import com.yahoo.vespa.flags.BooleanFlag;
import com.yahoo.vespa.flags.FlagSource;
-import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.orchestrator.Orchestrator;
@@ -127,7 +125,6 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
private final LogRetriever logRetriever;
private final TesterClient testerClient;
private final Metric metric;
- private final BooleanFlag useTenantMetaData;
@Inject
public ApplicationRepository(TenantRepository tenantRepository,
@@ -177,7 +174,6 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
this.clock = Objects.requireNonNull(clock);
this.testerClient = Objects.requireNonNull(testerClient);
this.metric = Objects.requireNonNull(metric);
- this.useTenantMetaData = Flags.USE_TENANT_META_DATA.bindTo(flagSource);
}
public static class Builder {
@@ -410,10 +406,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
checkIfActiveIsNewerThanSessionToBeActivated(prepared.getSessionId(), active.getSessionId());
transaction.add(active.createDeactivateTransaction().operations());
}
-
- if (useTenantMetaData.value())
- transaction.add(updateMetaDataWithDeployTimestamp(tenant, clock.instant()));
-
+ transaction.add(updateMetaDataWithDeployTimestamp(tenant, clock.instant()));
return transaction;
}
@@ -876,8 +869,6 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
}
public Set<TenantName> deleteUnusedTenants(Duration ttlForUnusedTenant, Instant now) {
- if ( ! useTenantMetaData.value()) return Set.of();
-
return tenantRepository.getAllTenantNames().stream()
.filter(tenantName -> activeApplications(tenantName).isEmpty())
.filter(tenantName -> !tenantName.equals(TenantName.defaultName())) // Not allowed to remove 'default' tenant
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
index ecbcb513c03..41377bdf317 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java
@@ -18,8 +18,6 @@ import com.yahoo.vespa.config.server.session.SessionRepository;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.transaction.CuratorOperations;
import com.yahoo.vespa.curator.transaction.CuratorTransaction;
-import com.yahoo.vespa.flags.BooleanFlag;
-import com.yahoo.vespa.flags.Flags;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;
import org.apache.curator.framework.state.ConnectionState;
@@ -88,7 +86,6 @@ public class TenantRepository {
private final ExecutorService bootstrapExecutor;
private final ScheduledExecutorService checkForRemovedApplicationsService = new ScheduledThreadPoolExecutor(1);
private final Optional<Curator.DirectoryCache> directoryCache;
- private final BooleanFlag useTenantMetaData;
/**
* Creates a new tenant repository
@@ -105,7 +102,6 @@ public class TenantRepository {
this.tenantListeners.add(componentRegistry.getTenantListener());
this.zkCacheExecutor = componentRegistry.getZkCacheExecutor();
this.zkWatcherExecutor = componentRegistry.getZkWatcherExecutor();
- this.useTenantMetaData = Flags.USE_TENANT_META_DATA.bindTo(componentRegistry.getFlagSource());
curator.framework().getConnectionStateListenable().addListener(this::stateChanged);
curator.create(tenantsPath);
@@ -230,9 +226,7 @@ public class TenantRepository {
private Tenant createTenant(TenantName tenantName, Instant created) {
if (tenants.containsKey(tenantName)) {
Tenant tenant = getTenant(tenantName);
- if (useTenantMetaData.value())
- createAndWriteTenantMetaData(tenant);
-
+ createAndWriteTenantMetaData(tenant);
return tenant;
}
@@ -255,8 +249,7 @@ public class TenantRepository {
Tenant tenant = new Tenant(tenantName, sessionRepository, applicationRepo, applicationRepo, created);
notifyNewTenant(tenant);
tenants.putIfAbsent(tenantName, tenant);
- if (useTenantMetaData.value())
- createAndWriteTenantMetaData(tenant);
+ createAndWriteTenantMetaData(tenant);
return tenant;
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java
index bd3053dd61f..f879f6c2a2a 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java
@@ -165,25 +165,11 @@ public class ApplicationRepositoryTest {
LocalSession session = tenant.getSessionRepository().getLocalSession(tenant.getApplicationRepo()
.requireActiveSessionOf(applicationId()));
session.getAllocatedHosts();
-
- assertEquals(Instant.EPOCH, applicationRepository.getTenantMetaData(tenant).lastDeployTimestamp());
- assertEquals(Instant.EPOCH, applicationRepository.getTenantMetaData(tenant).createdTimestamp());
}
@Test
- public void prepareAndActivateWithTenantMetaData() throws IOException {
- InMemoryFlagSource flagSource = new InMemoryFlagSource().withBooleanFlag(Flags.USE_TENANT_META_DATA.id(), false);
- setup(flagSource);
-
- // Tenants created when flag is false has EPOCH as metadata values
- Tenant tenant = applicationRepository.getTenant(applicationId());
- assertEquals(Instant.EPOCH.toEpochMilli(),
- applicationRepository.getTenantMetaData(tenant).createdTimestamp().toEpochMilli());
- assertEquals(Instant.EPOCH.toEpochMilli(),
- applicationRepository.getTenantMetaData(tenant).lastDeployTimestamp().toEpochMilli());
-
- // Change flag value to true
- flagSource.withBooleanFlag(Flags.USE_TENANT_META_DATA.id(), true);
+ public void prepareAndActivateWithTenantMetaData() {
+ Instant startTime = clock.instant();
Duration duration = Duration.ofHours(1);
clock.advance(duration);
Instant deployTime = clock.instant();
@@ -191,12 +177,9 @@ public class ApplicationRepositoryTest {
assertTrue(result.configChangeActions().getRefeedActions().isEmpty());
assertTrue(result.configChangeActions().getRestartActions().isEmpty());
- LocalSession session = tenant.getSessionRepository().getLocalSession(tenant.getApplicationRepo()
- .requireActiveSessionOf(applicationId()));
- session.getAllocatedHosts();
+ Tenant tenant = applicationRepository.getTenant(applicationId());
- // Only last deploy timestamp updated
- assertEquals(Instant.EPOCH.toEpochMilli(),
+ assertEquals(startTime.toEpochMilli(),
applicationRepository.getTenantMetaData(tenant).createdTimestamp().toEpochMilli());
assertEquals(deployTime.toEpochMilli(),
applicationRepository.getTenantMetaData(tenant).lastDeployTimestamp().toEpochMilli());
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java
index 043841c6acb..7999f9280c0 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java
@@ -23,7 +23,6 @@ import com.yahoo.vespa.config.server.session.PrepareParams;
import com.yahoo.vespa.config.server.tenant.TenantRepository;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
-import com.yahoo.vespa.flags.FlagSource;
import org.junit.rules.TemporaryFolder;
import java.io.File;
@@ -39,7 +38,7 @@ class MaintainerTester {
private final ApplicationRepository applicationRepository;
private final Clock clock;
- MaintainerTester(Clock clock, FlagSource flagSource, TemporaryFolder temporaryFolder) throws IOException {
+ MaintainerTester(Clock clock, TemporaryFolder temporaryFolder) throws IOException {
this.clock = clock;
this.curator = new MockCurator();
InMemoryProvisioner hostProvisioner = new InMemoryProvisioner(true, "host0", "host1", "host2", "host3", "host4");
@@ -54,7 +53,6 @@ class MaintainerTester {
.clock(clock)
.configServerConfig(configserverConfig)
.provisioner(provisioner)
- .flagSource(flagSource)
.modelFactoryRegistry(new ModelFactoryRegistry(List.of(new DeployTester.CountingModelFactory(clock))))
.build();
tenantRepository = new TenantRepository(componentRegistry);
@@ -63,7 +61,6 @@ class MaintainerTester {
.withProvisioner(provisioner)
.withOrchestrator(new OrchestratorMock())
.withLogRetriever(new MockLogRetriever())
- .withFlagSource(flagSource)
.withClock(clock)
.withConfigserverConfig(configserverConfig)
.build();
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainerTest.java
index e6172546ff8..463e5361248 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainerTest.java
@@ -9,8 +9,6 @@ import com.yahoo.test.ManualClock;
import com.yahoo.vespa.config.server.ApplicationRepository;
import com.yahoo.vespa.config.server.session.PrepareParams;
import com.yahoo.vespa.config.server.tenant.TenantRepository;
-import com.yahoo.vespa.flags.FlagSource;
-import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.flags.InMemoryFlagSource;
import org.junit.Rule;
import org.junit.Test;
@@ -31,8 +29,7 @@ public class TenantsMaintainerTest {
@Test
public void deleteTenantWithNoApplications() throws IOException {
ManualClock clock = new ManualClock("2020-06-01T00:00:00");
- FlagSource flagSource = new InMemoryFlagSource().withBooleanFlag(Flags.USE_TENANT_META_DATA.id(), true);
- MaintainerTester tester = new MaintainerTester(clock, flagSource, temporaryFolder);
+ MaintainerTester tester = new MaintainerTester(clock, temporaryFolder);
TenantRepository tenantRepository = tester.tenantRepository();
ApplicationRepository applicationRepository = tester.applicationRepository();
File applicationPackage = new File("src/test/apps/hosted");