diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-03-28 11:40:43 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-03-28 11:43:31 +0100 |
commit | e2f9983a45dc1f19565d8afda894a5816bee3d54 (patch) | |
tree | e56ae51567cacd1b71f12db2e474956963448a29 /configserver | |
parent | 3ea51936a1b297ee1ddf3d8b29a29e7fac0ab4d2 (diff) |
Wire FlagSource to LbServicesProducer
Diffstat (limited to 'configserver')
7 files changed, 23 insertions, 12 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java index 80818aea2e8..eeae770da43 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java @@ -14,6 +14,7 @@ import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.GenerationCounter; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.model.SuperModelConfigProvider; +import com.yahoo.vespa.flags.FlagSource; import java.time.Instant; import java.util.ArrayList; @@ -28,6 +29,7 @@ public class SuperModelManager implements SuperModelProvider { private final Zone zone; private final Object monitor = new Object(); + private final FlagSource flagSource; private SuperModelConfigProvider superModelConfigProvider; // Guarded by 'this' monitor private final List<SuperModelListener> listeners = new ArrayList<>(); // Guarded by 'this' monitor @@ -39,7 +41,9 @@ public class SuperModelManager implements SuperModelProvider { @Inject public SuperModelManager(ConfigserverConfig configserverConfig, NodeFlavors nodeFlavors, - GenerationCounter generationCounter) { + GenerationCounter generationCounter, + FlagSource flagSource) { + this.flagSource = flagSource; this.zone = new Zone(configserverConfig, nodeFlavors); this.generationCounter = generationCounter; this.masterGeneration = configserverConfig.masterGeneration(); @@ -107,6 +111,6 @@ public class SuperModelManager implements SuperModelProvider { private void makeNewSuperModelConfigProvider(SuperModel newSuperModel) { generation = masterGeneration + generationCounter.get(); - superModelConfigProvider = new SuperModelConfigProvider(newSuperModel, zone); + superModelConfigProvider = new SuperModelConfigProvider(newSuperModel, zone, flagSource); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java index ceeea197440..5dd2c8fd58a 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java @@ -9,6 +9,7 @@ import com.yahoo.config.model.api.ServiceInfo; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; +import com.yahoo.vespa.flags.FlagSource; import java.util.Collections; import java.util.Comparator; @@ -32,7 +33,7 @@ public class LbServicesProducer implements LbServicesConfig.Producer { private final Map<TenantName, Set<ApplicationInfo>> models; private final Zone zone; - public LbServicesProducer(Map<TenantName, Set<ApplicationInfo>> models, Zone zone) { + public LbServicesProducer(Map<TenantName, Set<ApplicationInfo>> models, Zone zone, FlagSource flagSource) { this.models = models; this.zone = zone; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java b/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java index 4a75414c272..75f53667c4a 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java @@ -11,6 +11,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.ConfigPayload; +import com.yahoo.vespa.flags.FlagSource; import java.util.Collections; import java.util.Map; @@ -26,9 +27,9 @@ public class SuperModelConfigProvider implements LbServicesConfig.Producer, Rout private final LbServicesProducer lbProd; private final RoutingProducer zoneProd; - public SuperModelConfigProvider(SuperModel superModel, Zone zone) { + public SuperModelConfigProvider(SuperModel superModel, Zone zone, FlagSource flagSource) { this.superModel = superModel; - this.lbProd = new LbServicesProducer(Collections.unmodifiableMap(superModel.getModelsPerTenant()), zone); + this.lbProd = new LbServicesProducer(Collections.unmodifiableMap(superModel.getModelsPerTenant()), zone, flagSource); this.zoneProd = new RoutingProducer(Collections.unmodifiableMap(superModel.getModelsPerTenant())); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelControllerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelControllerTest.java index 97496bd4177..c6f6be5fbab 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelControllerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelControllerTest.java @@ -22,6 +22,7 @@ import com.yahoo.vespa.config.protocol.JRTServerConfigRequestV3; import com.yahoo.vespa.config.protocol.Trace; import com.yahoo.vespa.config.server.model.SuperModelConfigProvider; import com.yahoo.vespa.config.server.rpc.UncompressedConfigResponseFactory; +import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.VespaModel; import org.junit.Before; import org.junit.Test; @@ -55,7 +56,7 @@ public class SuperModelControllerTest { ApplicationName.from("foo"), InstanceName.defaultName()); models.put(app, new ApplicationInfo(app, 4l, new VespaModel(FilesApplicationPackage.fromFile(testApp)))); SuperModel superModel = new SuperModel(models); - handler = new SuperModelController(new SuperModelConfigProvider(superModel, Zone.defaultZone()), new TestConfigDefinitionRepo(), 2, new UncompressedConfigResponseFactory()); + handler = new SuperModelController(new SuperModelConfigProvider(superModel, Zone.defaultZone(), new InMemoryFlagSource()), new TestConfigDefinitionRepo(), 2, new UncompressedConfigResponseFactory()); } @Test @@ -98,7 +99,7 @@ public class SuperModelControllerTest { models.put(tooAdvanced, createApplicationInfo(testApp3, tooAdvanced, 4l)); SuperModel superModel = new SuperModel(models); - SuperModelController han = new SuperModelController(new SuperModelConfigProvider(superModel, Zone.defaultZone()), new TestConfigDefinitionRepo(), 2, new UncompressedConfigResponseFactory()); + SuperModelController han = new SuperModelController(new SuperModelConfigProvider(superModel, Zone.defaultZone(), new InMemoryFlagSource()), new TestConfigDefinitionRepo(), 2, new UncompressedConfigResponseFactory()); LbServicesConfig.Builder lb = new LbServicesConfig.Builder(); han.getSuperModel().getConfig(lb); LbServicesConfig lbc = new LbServicesConfig(lb); @@ -126,7 +127,7 @@ public class SuperModelControllerTest { models.put(tooAdvanced, createApplicationInfo(testApp3, tooAdvanced, 4l)); SuperModel superModel = new SuperModel(models); - SuperModelController han = new SuperModelController(new SuperModelConfigProvider(superModel, Zone.defaultZone()), new TestConfigDefinitionRepo(), 2, new UncompressedConfigResponseFactory()); + SuperModelController han = new SuperModelController(new SuperModelConfigProvider(superModel, Zone.defaultZone(), new InMemoryFlagSource()), new TestConfigDefinitionRepo(), 2, new UncompressedConfigResponseFactory()); LbServicesConfig.Builder lb = new LbServicesConfig.Builder(); han.getSuperModel().getConfig(lb); LbServicesConfig lbc = new LbServicesConfig(lb); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelRequestHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelRequestHandlerTest.java index 3288b418bb1..35ad97b7b43 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelRequestHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelRequestHandlerTest.java @@ -11,6 +11,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.monitoring.MetricUpdater; import com.yahoo.vespa.curator.mock.MockCurator; +import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.VespaModel; import org.junit.Before; @@ -45,7 +46,7 @@ public class SuperModelRequestHandlerTest { public void setup() { counter = new SuperModelGenerationCounter(new MockCurator()); ConfigserverConfig configserverConfig = new ConfigserverConfig(new ConfigserverConfig.Builder()); - manager = new SuperModelManager(configserverConfig, emptyNodeFlavors(), counter); + manager = new SuperModelManager(configserverConfig, emptyNodeFlavors(), counter, new InMemoryFlagSource()); controller = new SuperModelRequestHandler(new TestConfigDefinitionRepo(), configserverConfig, manager); } @@ -97,7 +98,7 @@ public class SuperModelRequestHandlerTest { ApplicationId foo = applicationId("a", "foo"); long masterGen = 10; ConfigserverConfig configserverConfig = new ConfigserverConfig(new ConfigserverConfig.Builder().masterGeneration(masterGen)); - manager = new SuperModelManager(configserverConfig, emptyNodeFlavors(), counter); + manager = new SuperModelManager(configserverConfig, emptyNodeFlavors(), counter, new InMemoryFlagSource()); controller = new SuperModelRequestHandler(new TestConfigDefinitionRepo(), configserverConfig, manager); long gen = counter.increment(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java index 352245757ca..5369f6510e2 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java @@ -16,6 +16,7 @@ import com.yahoo.config.provision.Rotation; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.ConfigPayload; +import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.VespaModel; import org.junit.Test; import org.xml.sax.SAXException; @@ -96,7 +97,7 @@ public class LbServicesProducerTest { } private LbServicesConfig getLbServicesConfig(Zone zone, Map<TenantName, Set<ApplicationInfo>> testModel) { - LbServicesProducer producer = new LbServicesProducer(testModel, zone); + LbServicesProducer producer = new LbServicesProducer(testModel, zone, new InMemoryFlagSource()); LbServicesConfig.Builder builder = new LbServicesConfig.Builder(); producer.getConfig(builder); return new LbServicesConfig(builder); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java index 43a2c01f26a..dd66f720b1f 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java @@ -18,6 +18,7 @@ import com.yahoo.vespa.config.server.host.HostRegistries; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.tenant.MockTenantProvider; import com.yahoo.vespa.config.server.tenant.TenantHandlerProvider; +import com.yahoo.vespa.flags.InMemoryFlagSource; import org.junit.After; import org.junit.rules.TemporaryFolder; @@ -93,7 +94,8 @@ public class RpcTester implements AutoCloseable { new SuperModelManager( configserverConfig, emptyNodeFlavors(), - generationCounter)), + generationCounter, + new InMemoryFlagSource())), Metrics.createTestMetrics(), new HostRegistries(), hostLivenessTracker, new FileServer(temporaryFolder.newFolder())); rpcServer.onTenantCreate(TenantName.from("default"), tenantProvider); |