From 2c9b2d5b0a32bef040e7aca72b205712cd35832f Mon Sep 17 00:00:00 2001 From: HÃ¥kon Hallingstad Date: Thu, 17 Jan 2019 00:35:55 +0100 Subject: Define enable logserver flag --- .../config/server/deploy/ModelContextImpl.java | 14 ++++++++ .../modelfactory/ActivatedModelsBuilder.java | 1 + .../vespa/config/server/session/LocalSession.java | 13 +++---- .../config/server/session/SessionContext.java | 13 +++++-- .../config/server/session/SessionFactoryImpl.java | 8 +++-- .../config/server/session/SessionPreparer.java | 9 +++-- .../vespa/config/server/ModelContextImplTest.java | 2 ++ .../vespa/config/server/TestComponentRegistry.java | 3 +- .../config/server/http/SessionHandlerTest.java | 40 ++++++++++++++++------ .../server/http/v2/SessionActiveHandlerTest.java | 5 ++- .../server/http/v2/SessionPrepareHandlerTest.java | 3 +- .../config/server/session/LocalSessionTest.java | 12 ++++++- .../config/server/session/SessionPreparerTest.java | 8 +++-- .../vespa/config/server/session/SessionTest.java | 2 +- 14 files changed, 102 insertions(+), 31 deletions(-) (limited to 'configserver') 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..d3901b342d6 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; @@ -126,8 +129,10 @@ public class ModelContextImpl implements ModelContext { private final boolean isBootstrap; private final boolean isFirstTimeDeployment; private final boolean useDedicatedNodeForLogserver; + private final boolean enableLogServer; public Properties(ApplicationId applicationId, + FlagSource flagSource, boolean multitenant, List configServerSpecs, HostName loadBalancerName, @@ -151,6 +156,10 @@ public class ModelContextImpl implements ModelContext { this.isBootstrap = isBootstrap; this.isFirstTimeDeployment = isFirstTimeDeployment; this.useDedicatedNodeForLogserver = useDedicatedNodeForLogserver; + this.enableLogServer = Flags.ENABLE_LOGSERVER + .bindTo(flagSource) + .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()) + .value(); } @Override @@ -192,6 +201,11 @@ public class ModelContextImpl implements ModelContext { @Override public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; } + + @Override + public boolean enableLogServer() { + return enableLogServer; + } } } 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..f7a500e5bf6 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 @@ -120,6 +120,7 @@ public class ActivatedModelsBuilder extends ModelsBuilder { private ModelContext.Properties createModelContextProperties(ApplicationId applicationId) { return new ModelContextImpl.Properties(applicationId, + flagSource, configserverConfig.multitenant(), ConfigServerSpec.fromConfig(configserverConfig), HostName.from(configserverConfig.loadBalancerAddress()), diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java index 0f9f8b72de1..5d9665c9815 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java @@ -3,18 +3,19 @@ package com.yahoo.vespa.config.server.session; import com.yahoo.component.Version; import com.yahoo.config.application.api.ApplicationFile; -import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.ApplicationMetaData; +import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.provision.AllocatedHosts; +import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.TenantName; +import com.yahoo.io.IOUtils; +import com.yahoo.path.Path; import com.yahoo.transaction.AbstractTransaction; import com.yahoo.transaction.NestedTransaction; import com.yahoo.transaction.Transaction; -import com.yahoo.io.IOUtils; -import com.yahoo.path.Path; -import com.yahoo.vespa.config.server.*; -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.TenantName; +import com.yahoo.vespa.config.server.SuperModelGenerationCounter; +import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; 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 hostRegistry; private final SuperModelGenerationCounter superModelGenerationCounter; + private final FlagSource flagSource; public SessionContext(ApplicationPackage applicationPackage, SessionZooKeeperClient sessionZooKeeperClient, File serverDBSessionDir, TenantApplications applicationRepo, - HostValidator hostRegistry, SuperModelGenerationCounter superModelGenerationCounter) { + HostValidator 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; 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..5c834686c8c 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; } /** @@ -152,6 +156,7 @@ public class SessionPreparer { this.rotations = new Rotations(curator, tenantPath); this.rotationsSet = getRotations(params.rotations()); this.properties = new ModelContextImpl.Properties(params.getApplicationId(), + context.getFlagSource(), configserverConfig.multitenant(), ConfigServerSpec.fromConfig(configserverConfig), HostName.from(configserverConfig.loadBalancerAddress()), 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..82d1bd3b622 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 @@ -11,6 +11,7 @@ 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; @@ -43,6 +44,7 @@ public class ModelContextImplTest { Optional.empty(), new ModelContextImpl.Properties( ApplicationId.defaultId(), + new InMemoryFlagSource(), true, Collections.emptyList(), null, 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..87dd87c3def 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,7 +404,8 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { null, null, new HostRegistry<>(), - null)); + 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 -- cgit v1.2.3