diff options
author | HÃ¥kon Hallingstad <hakon@oath.com> | 2019-01-24 09:27:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-24 09:27:24 +0100 |
commit | b62ea5328f268c8bbf12d5c5c241b1948ead8b97 (patch) | |
tree | 4ef651d779c2f2dc235dc93abc2a5e0c946e5b38 /configserver | |
parent | 22e8b3766a2e35f6861ba699493f15719ef4e920 (diff) | |
parent | 1db80c6ab30aafd0e8c3cc09091f9949e9488145 (diff) |
Merge pull request #8181 from vespa-engine/hakonhall/define-enable-logserver-flag
Define enable logserver flag.
Diffstat (limited to 'configserver')
13 files changed, 96 insertions, 36 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java index acf49fe51be..771c223c332 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java @@ -14,6 +14,9 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.Rotation; import com.yahoo.config.provision.Zone; +import com.yahoo.vespa.flags.FetchVector; +import com.yahoo.vespa.flags.FlagSource; +import com.yahoo.vespa.flags.Flags; import java.io.File; import java.net.URI; @@ -138,7 +141,7 @@ public class ModelContextImpl implements ModelContext { Set<Rotation> rotations, boolean isBootstrap, boolean isFirstTimeDeployment, - boolean useDedicatedNodeForLogserver) { + FlagSource flagSource) { this.applicationId = applicationId; this.multitenant = multitenant; this.configServerSpecs = configServerSpecs; @@ -150,7 +153,10 @@ public class ModelContextImpl implements ModelContext { this.rotations = rotations; this.isBootstrap = isBootstrap; this.isFirstTimeDeployment = isFirstTimeDeployment; - this.useDedicatedNodeForLogserver = useDedicatedNodeForLogserver; + this.useDedicatedNodeForLogserver = Flags.USE_DEDICATED_NODE_FOR_LOGSERVER + .bindTo(flagSource) + .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()) + .value(); } @Override diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java index 103eec14b36..8083834ad17 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java @@ -1,31 +1,31 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.modelfactory; +import com.yahoo.component.Version; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.api.ConfigDefinitionRepo; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.api.ModelFactory; import com.yahoo.config.model.application.provider.MockFileRegistry; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.AllocatedHosts; +import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.TenantName; -import com.yahoo.component.Version; import com.yahoo.log.LogLevel; import com.yahoo.vespa.config.server.ConfigServerSpec; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.ServerCache; -import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; -import com.yahoo.vespa.config.server.tenant.Rotations; -import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.application.Application; import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.deploy.ModelContextImpl; import com.yahoo.vespa.config.server.monitoring.MetricUpdater; import com.yahoo.vespa.config.server.monitoring.Metrics; +import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.session.SessionZooKeeperClient; import com.yahoo.vespa.config.server.session.SilentDeployLogger; +import com.yahoo.vespa.config.server.tenant.Rotations; +import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.flags.FlagSource; @@ -130,7 +130,7 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> { new Rotations(curator, TenantRepository.getTenantPath(tenant)).readRotationsFromZooKeeper(applicationId), false, // We may be bootstrapping, but we only know and care during prepare false, // Always false, assume no one uses it when activating - configserverConfig.useDedicatedNodeForLogserver()); + flagSource); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionContext.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionContext.java index 323c2667d30..f212e1a1486 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionContext.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionContext.java @@ -2,10 +2,11 @@ package com.yahoo.vespa.config.server.session; import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.vespa.config.server.host.HostValidator; -import com.yahoo.vespa.config.server.SuperModelGenerationCounter; import com.yahoo.config.provision.ApplicationId; +import com.yahoo.vespa.config.server.SuperModelGenerationCounter; import com.yahoo.vespa.config.server.application.TenantApplications; +import com.yahoo.vespa.config.server.host.HostValidator; +import com.yahoo.vespa.flags.FlagSource; import java.io.File; @@ -22,16 +23,19 @@ public class SessionContext { private final TenantApplications applicationRepo; private final HostValidator<ApplicationId> hostRegistry; private final SuperModelGenerationCounter superModelGenerationCounter; + private final FlagSource flagSource; public SessionContext(ApplicationPackage applicationPackage, SessionZooKeeperClient sessionZooKeeperClient, File serverDBSessionDir, TenantApplications applicationRepo, - HostValidator<ApplicationId> hostRegistry, SuperModelGenerationCounter superModelGenerationCounter) { + HostValidator<ApplicationId> hostRegistry, SuperModelGenerationCounter superModelGenerationCounter, + FlagSource flagSource) { this.applicationPackage = applicationPackage; this.sessionZooKeeperClient = sessionZooKeeperClient; this.serverDBSessionDir = serverDBSessionDir; this.applicationRepo = applicationRepo; this.hostRegistry = hostRegistry; this.superModelGenerationCounter = superModelGenerationCounter; + this.flagSource = flagSource; } public ApplicationPackage getApplicationPackage() { @@ -56,4 +60,7 @@ public class SessionContext { return superModelGenerationCounter; } + public FlagSource getFlagSource() { + return flagSource; + } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java index a50114a4a82..b79ea720aea 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java @@ -18,6 +18,7 @@ import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.zookeeper.SessionCounter; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.curator.Curator; +import com.yahoo.vespa.flags.FlagSource; import java.io.File; import java.time.Clock; @@ -50,6 +51,7 @@ public class SessionFactoryImpl implements SessionFactory, LocalSessionLoader { private final String serverId; private final Optional<NodeFlavors> nodeFlavors; private final Clock clock; + private final FlagSource flagSource; public SessionFactoryImpl(GlobalComponentRegistry globalComponentRegistry, TenantApplications applicationRepo, @@ -69,6 +71,7 @@ public class SessionFactoryImpl implements SessionFactory, LocalSessionLoader { this.serverId = globalComponentRegistry.getConfigserverConfig().serverId(); this.nodeFlavors = globalComponentRegistry.getZone().nodeFlavors(); this.clock = globalComponentRegistry.getClock(); + this.flagSource = globalComponentRegistry.getFlagSource(); } /** Create a session for a true application package change */ @@ -110,7 +113,8 @@ public class SessionFactoryImpl implements SessionFactory, LocalSessionLoader { log.log(LogLevel.DEBUG, TenantRepository.logPre(tenant) + "Creating upload waiter for session " + sessionId); Curator.CompletionWaiter waiter = sessionZKClient.getUploadWaiter(); log.log(LogLevel.DEBUG, TenantRepository.logPre(tenant) + "Done creating upload waiter for session " + sessionId); - LocalSession session = new LocalSession(tenant, sessionId, sessionPreparer, new SessionContext(applicationPackage, sessionZKClient, getSessionAppDir(sessionId), applicationRepo, hostRegistry, superModelGenerationCounter)); + SessionContext context = new SessionContext(applicationPackage, sessionZKClient, getSessionAppDir(sessionId), applicationRepo, hostRegistry, superModelGenerationCounter, flagSource); + LocalSession session = new LocalSession(tenant, sessionId, sessionPreparer, context); log.log(LogLevel.DEBUG, TenantRepository.logPre(tenant) + "Waiting on upload waiter for session " + sessionId); waiter.awaitCompletion(timeoutBudget.timeLeft()); log.log(LogLevel.DEBUG, TenantRepository.logPre(tenant) + "Done waiting on upload waiter for session " + sessionId); @@ -179,7 +183,7 @@ public class SessionFactoryImpl implements SessionFactory, LocalSessionLoader { serverId, nodeFlavors); SessionContext context = new SessionContext(applicationPackage, sessionZKClient, sessionDir, applicationRepo, - hostRegistry, superModelGenerationCounter); + hostRegistry, superModelGenerationCounter, flagSource); return new LocalSession(tenant, sessionId, sessionPreparer, context); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java index fd4628baa85..43a5ff6d0c2 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.session; import com.google.common.collect.ImmutableList; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; +import com.yahoo.component.Version; import com.yahoo.component.Vtag; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; @@ -15,7 +16,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.OutOfCapacityException; import com.yahoo.config.provision.Rotation; -import com.yahoo.component.Version; import com.yahoo.config.provision.Zone; import com.yahoo.lang.SettableOptional; import com.yahoo.log.LogLevel; @@ -32,6 +32,7 @@ import com.yahoo.vespa.config.server.modelfactory.PreparedModelsBuilder; import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.tenant.Rotations; import com.yahoo.vespa.curator.Curator; +import com.yahoo.vespa.flags.FlagSource; import org.xml.sax.SAXException; import javax.xml.parsers.ParserConfigurationException; @@ -63,6 +64,7 @@ public class SessionPreparer { private final ConfigDefinitionRepo configDefinitionRepo; private final Curator curator; private final Zone zone; + private final FlagSource flagSource; @Inject public SessionPreparer(ModelFactoryRegistry modelFactoryRegistry, @@ -72,7 +74,8 @@ public class SessionPreparer { ConfigserverConfig configserverConfig, ConfigDefinitionRepo configDefinitionRepo, Curator curator, - Zone zone) { + Zone zone, + FlagSource flagSource) { this.modelFactoryRegistry = modelFactoryRegistry; this.fileDistributionFactory = fileDistributionFactory; this.hostProvisionerProvider = hostProvisionerProvider; @@ -81,6 +84,7 @@ public class SessionPreparer { this.configDefinitionRepo = configDefinitionRepo; this.curator = curator; this.zone = zone; + this.flagSource = flagSource; } /** @@ -162,7 +166,7 @@ public class SessionPreparer { rotationsSet, params.isBootstrap(), ! currentActiveApplicationSet.isPresent(), - configserverConfig.useDedicatedNodeForLogserver()); + context.getFlagSource()); this.preparedModelsBuilder = new PreparedModelsBuilder(modelFactoryRegistry, permanentApplicationPackage, configDefinitionRepo, diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java index 43425aec13b..1b4ed2283ba 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java @@ -10,7 +10,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Rotation; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.deploy.ModelContextImpl; - +import com.yahoo.vespa.flags.InMemoryFlagSource; import org.junit.Test; import java.util.Collections; @@ -20,6 +20,7 @@ import java.util.Set; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; @@ -32,6 +33,7 @@ public class ModelContextImplTest { final Rotation rotation = new Rotation("this.is.a.mock.rotation"); final Set<Rotation> rotations = Collections.singleton(rotation); + final InMemoryFlagSource flagSource = new InMemoryFlagSource(); ModelContext context = new ModelContextImpl( MockApplicationPackage.createEmpty(), @@ -53,7 +55,7 @@ public class ModelContextImplTest { rotations, false, false, - false), + flagSource), Optional.empty(), new Version(6), new Version(6)); @@ -66,7 +68,7 @@ public class ModelContextImplTest { assertThat(context.properties().applicationId(), is(ApplicationId.defaultId())); assertTrue(context.properties().configServerSpecs().isEmpty()); assertTrue(context.properties().multitenant()); - assertTrue(context.properties().zone() instanceof Zone); + assertNotNull(context.properties().zone()); assertFalse(context.properties().hostedVespa()); assertThat(context.properties().rotations(), equalTo(rotations)); assertThat(context.properties().isFirstTimeDeployment(), equalTo(false)); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java index 65c83633bbb..83b1fdd009f 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java @@ -23,6 +23,7 @@ import com.yahoo.vespa.curator.mock.MockCurator; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.flags.FileFlagSource; import com.yahoo.vespa.flags.FlagSource; +import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.VespaModelFactory; import java.time.Clock; @@ -154,7 +155,7 @@ public class TestComponentRegistry implements GlobalComponentRegistry { SessionPreparer sessionPreparer = new SessionPreparer(modelFactoryRegistry, fileDistributionFactory, hostProvisionerProvider, permApp, configserverConfig, defRepo, curator, - zone); + zone, new InMemoryFlagSource()); return new TestComponentRegistry(curator, ConfigCurator.create(curator), metrics, modelFactoryRegistry, permApp, fileDistributionFactory, hostRegistries, configserverConfig, sessionPreparer, hostProvisioner, defRepo, reloadListener, tenantListener, diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java index c5faebe4a28..cce8f8d18b2 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java @@ -7,28 +7,40 @@ import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.application.provider.FilesApplicationPackage; import com.yahoo.config.model.test.MockApplicationPackage; +import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Capacity; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.HostFilter; import com.yahoo.config.provision.HostSpec; import com.yahoo.config.provision.ProvisionLogger; import com.yahoo.config.provision.Provisioner; +import com.yahoo.config.provision.TenantName; +import com.yahoo.container.jdisc.HttpRequest; +import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.io.IOUtils; -import com.yahoo.transaction.NestedTransaction; -import com.yahoo.transaction.Transaction; import com.yahoo.log.LogLevel; import com.yahoo.path.Path; -import com.yahoo.container.jdisc.HttpRequest; -import com.yahoo.container.jdisc.HttpResponse; +import com.yahoo.transaction.NestedTransaction; +import com.yahoo.transaction.Transaction; import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.ApplicationSet; -import com.yahoo.vespa.config.server.host.HostRegistry; -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; -import com.yahoo.vespa.config.server.session.*; - -import java.io.*; +import com.yahoo.vespa.config.server.host.HostRegistry; +import com.yahoo.vespa.config.server.session.DummyTransaction; +import com.yahoo.vespa.config.server.session.LocalSession; +import com.yahoo.vespa.config.server.session.MockSessionZKClient; +import com.yahoo.vespa.config.server.session.PrepareParams; +import com.yahoo.vespa.config.server.session.Session; +import com.yahoo.vespa.config.server.session.SessionContext; +import com.yahoo.vespa.config.server.session.SessionFactory; +import com.yahoo.vespa.config.server.session.SessionPreparer; +import com.yahoo.vespa.config.server.session.SessionTest; +import com.yahoo.vespa.flags.InMemoryFlagSource; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.time.Instant; import java.util.Collection; import java.util.List; @@ -73,6 +85,7 @@ public class SessionHandlerTest { public static class MockSession extends LocalSession { + private final InMemoryFlagSource flagSource; public boolean doVerboseLogging = false; public Session.Status status; private final SessionPreparer preparer; @@ -82,9 +95,14 @@ public class SessionHandlerTest { private ApplicationId applicationId; public MockSession(long id, ApplicationPackage app) { - super(TenantName.defaultName(), id, null, new SessionContext(null, new MockSessionZKClient(MockApplicationPackage.createEmpty()), null, null, new HostRegistry<>(), null)); + this(id, app, new InMemoryFlagSource()); + } + + private MockSession(long id, ApplicationPackage app, InMemoryFlagSource flagSource) { + super(TenantName.defaultName(), id, null, new SessionContext(null, new MockSessionZKClient(MockApplicationPackage.createEmpty()), null, null, new HostRegistry<>(), null, flagSource)); this.app = app; this.preparer = new SessionTest.MockSessionPreparer(); + this.flagSource = flagSource; } public MockSession(long sessionId, ApplicationPackage applicationPackage, long createTime) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java index 8a21ee51a02..a7efa09a281 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java @@ -47,6 +47,7 @@ import com.yahoo.vespa.config.server.tenant.TenantBuilder; 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.InMemoryFlagSource; import com.yahoo.vespa.model.VespaModelFactory; import org.hamcrest.core.Is; import org.junit.Before; @@ -80,6 +81,7 @@ public class SessionActiveHandlerTest extends SessionHandlerTest { private static final TenantName tenantName = TenantName.from("activatetest"); private static final String activatedMessage = " for tenant '" + tenantName + "' activated."; + private final InMemoryFlagSource flagSource = new InMemoryFlagSource(); private final Clock clock = Clock.systemUTC(); private Curator curator; private RemoteSessionRepo remoteSessionRepo; @@ -231,7 +233,8 @@ public class SessionActiveHandlerTest extends SessionHandlerTest { ApplicationPackage app = FilesApplicationPackage.fromFileWithDeployData(testApp, deployData); localRepo.addSession(new LocalSession(tenantName, sessionId, new SessionTest.MockSessionPreparer(), new SessionContext(app, zkc, new File(tenantFileSystemDirs.sessionsPath(), String.valueOf(sessionId)), - applicationRepo, new HostRegistry<>(), new SuperModelGenerationCounter(curator)))); + applicationRepo, new HostRegistry<>(), new SuperModelGenerationCounter(curator), + flagSource))); } private ActivateRequest activateAndAssertOKPut(long sessionId, long previousSessionId, String subPath) throws Exception { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java index caaa5d1d74d..9007ef1abad 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java @@ -404,6 +404,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { null, null, new HostRegistry<>(), + null, null)); this.exception = exception; } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java index e49c29e79b4..c4b3e5f24dc 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java @@ -23,6 +23,7 @@ import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.curator.mock.MockCurator; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; +import com.yahoo.vespa.flags.InMemoryFlagSource; import org.junit.Before; import org.junit.Test; @@ -38,6 +39,7 @@ import static org.junit.Assert.*; */ public class LocalSessionTest { + private final InMemoryFlagSource flagSource = new InMemoryFlagSource(); private Path tenantPath = Path.createRoot(); private Curator curator; private ConfigCurator configCurator; @@ -173,7 +175,15 @@ public class LocalSessionTest { zkClient.write(Collections.singletonMap(new Version(0, 0, 0), new MockFileRegistry())); File sessionDir = new File(tenantFileSystemDirs.sessionsPath(), String.valueOf(sessionId)); sessionDir.createNewFile(); - return new LocalSession(tenant, sessionId, preparer, new SessionContext(FilesApplicationPackage.fromFile(testApp), zkc, sessionDir, new MemoryTenantApplications(), new HostRegistry<>(), superModelGenerationCounter)); + return new LocalSession(tenant, sessionId, preparer, + new SessionContext( + FilesApplicationPackage.fromFile(testApp), + zkc, + sessionDir, + new MemoryTenantApplications(), + new HostRegistry<>(), + superModelGenerationCounter, + flagSource)); } private void doPrepare(LocalSession session, Instant now) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java index 6fe749b4493..93f5f4f4ba4 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java @@ -33,6 +33,7 @@ import com.yahoo.vespa.config.server.tenant.Rotations; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.curator.mock.MockCurator; +import com.yahoo.vespa.flags.InMemoryFlagSource; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -66,6 +67,7 @@ public class SessionPreparerTest { private static final Version version321 = new Version(3, 2, 1); private static final Version version323 = new Version(3, 2, 3); + private final InMemoryFlagSource flagSource = new InMemoryFlagSource(); private MockCurator curator; private ConfigCurator configCurator; private SessionPreparer preparer; @@ -105,7 +107,8 @@ public class SessionPreparerTest { componentRegistry.getConfigserverConfig(), componentRegistry.getStaticConfigDefinitionRepo(), curator, - componentRegistry.getZone()); + componentRegistry.getZone(), + flagSource); } @Test(expected = InvalidApplicationException.class) @@ -236,7 +239,8 @@ public class SessionPreparerTest { new SessionZooKeeperClient(curator, sessionsPath), app.getAppDir(), new MemoryTenantApplications(), new HostRegistry<>(), - new SuperModelGenerationCounter(curator)); + new SuperModelGenerationCounter(curator), + flagSource); } private FilesApplicationPackage getApplicationPackage(File testFile) throws IOException { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionTest.java index 419accc4ca9..95f6c7718e2 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionTest.java @@ -21,7 +21,7 @@ public class SessionTest { public boolean isPrepared = false; public MockSessionPreparer() { - super(null, null, null, null, null, null, new MockCurator(), null); + super(null, null, null, null, null, null, new MockCurator(), null, null); } @Override |