diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-01-21 08:27:59 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-01-21 08:27:59 +0100 |
commit | 40ea1a4629340661f8b4e7390ddd141d4946524f (patch) | |
tree | 963bb327d285836e988667687bd12e7749add5c9 /configserver/src | |
parent | 327eb2b09d667d8bdbf74355d9138450c4812614 (diff) |
Move Zone out of GlobalComponentRegistry
Diffstat (limited to 'configserver/src')
12 files changed, 47 insertions, 57 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java index 4d25ff59436..618f25efd17 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.config.server; import com.yahoo.config.model.api.ConfigDefinitionRepo; -import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.tenant.TenantListener; @@ -19,6 +18,5 @@ public interface GlobalComponentRegistry { ReloadListener getReloadListener(); ConfigDefinitionRepo getStaticConfigDefinitionRepo(); ModelFactoryRegistry getModelFactoryRegistry(); - Zone getZone(); Clock getClock(); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java index 154f735a56a..ab3591fa1a4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java @@ -3,7 +3,6 @@ package com.yahoo.vespa.config.server; import com.google.inject.Inject; import com.yahoo.config.model.api.ConfigDefinitionRepo; -import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.rpc.RpcServer; import com.yahoo.vespa.config.server.tenant.TenantListener; @@ -20,18 +19,15 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry private final ModelFactoryRegistry modelFactoryRegistry; private final RpcServer rpcServer; private final ConfigDefinitionRepo staticConfigDefinitionRepo; - private final Zone zone; @SuppressWarnings("WeakerAccess") @Inject public InjectedGlobalComponentRegistry(ModelFactoryRegistry modelFactoryRegistry, RpcServer rpcServer, - ConfigDefinitionRepo staticConfigDefinitionRepo, - Zone zone) { + ConfigDefinitionRepo staticConfigDefinitionRepo) { this.modelFactoryRegistry = modelFactoryRegistry; this.rpcServer = rpcServer; this.staticConfigDefinitionRepo = staticConfigDefinitionRepo; - this.zone = zone; } @Override @@ -44,11 +40,6 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry public ModelFactoryRegistry getModelFactoryRegistry() { return modelFactoryRegistry; } @Override - public Zone getZone() { - return zone; - } - - @Override public Clock getClock() {return Clock.systemUTC();} } 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 a377fca5bd1..3d58c66204f 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 @@ -15,6 +15,7 @@ import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.DockerImage; import com.yahoo.config.provision.TenantName; +import com.yahoo.config.provision.Zone; import com.yahoo.container.jdisc.secretstore.SecretStore; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.ServerCache; @@ -73,10 +74,11 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> { FlagSource flagSource, SecretStore secretStore, HostProvisionerProvider hostProvisionerProvider, - ConfigserverConfig configserverConfig) { + ConfigserverConfig configserverConfig, + Zone zone) { super(globalComponentRegistry.getModelFactoryRegistry(), configserverConfig, - globalComponentRegistry.getZone(), + zone, hostProvisionerProvider); this.tenant = tenant; this.applicationGeneration = applicationGeneration; diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java index 1b7f7a3b697..eda23ce4349 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java @@ -13,6 +13,7 @@ import com.yahoo.config.model.application.provider.FilesApplicationPackage; import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; +import com.yahoo.config.provision.Zone; import com.yahoo.container.jdisc.secretstore.SecretStore; import com.yahoo.io.IOUtils; import com.yahoo.lang.SettableOptional; @@ -106,6 +107,7 @@ public class SessionRepository { private final HostProvisionerProvider hostProvisionerProvider; private final ConfigserverConfig configserverConfig; private final ConfigServerDB configServerDB; + private final Zone zone; public SessionRepository(TenantName tenantName, GlobalComponentRegistry componentRegistry, @@ -120,7 +122,8 @@ public class SessionRepository { SecretStore secretStore, HostProvisionerProvider hostProvisionerProvider, ConfigserverConfig configserverConfig, - ConfigServerDB configServerDB) { + ConfigServerDB configServerDB, + Zone zone) { this.tenantName = tenantName; this.componentRegistry = componentRegistry; this.configCurator = ConfigCurator.create(curator); @@ -141,6 +144,7 @@ public class SessionRepository { this.hostProvisionerProvider = hostProvisionerProvider; this.configserverConfig = configserverConfig; this.configServerDB = configServerDB; + this.zone = zone; loadSessions(); // Needs to be done before creating cache below this.directoryCache = curator.createDirectoryCache(sessionsPath.getAbsolute(), false, false, zkCacheExecutor); @@ -467,7 +471,8 @@ public class SessionRepository { flagSource, secretStore, hostProvisionerProvider, - configserverConfig); + configserverConfig, + zone); // Read hosts allocated on the config server instance which created this SettableOptional<AllocatedHosts> allocatedHosts = new SettableOptional<>(applicationPackage.getAllocatedHosts()); 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 df02bcd4ac4..46157ad174d 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 @@ -9,6 +9,7 @@ import com.yahoo.concurrent.StripedExecutor; import com.yahoo.concurrent.ThreadFactoryFactory; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; +import com.yahoo.config.provision.Zone; import com.yahoo.container.jdisc.secretstore.SecretStore; import com.yahoo.path.Path; import com.yahoo.text.Utf8; @@ -101,6 +102,7 @@ public class TenantRepository { private final HostProvisionerProvider hostProvisionerProvider; private final ConfigserverConfig configserverConfig; private final ConfigServerDB configServerDB; + private final Zone zone; private final ExecutorService bootstrapExecutor; private final ScheduledExecutorService checkForRemovedApplicationsService = new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory("check for removed applications")); @@ -120,7 +122,8 @@ public class TenantRepository { SecretStore secretStore, HostProvisionerProvider hostProvisionerProvider, ConfigserverConfig configserverConfig, - ConfigServerDB configServerDB) { + ConfigServerDB configServerDB, + Zone zone) { this(componentRegistry, hostRegistry, curator, @@ -132,7 +135,8 @@ public class TenantRepository { secretStore, hostProvisionerProvider, configserverConfig, - configServerDB); + configServerDB, + zone); } public TenantRepository(GlobalComponentRegistry componentRegistry, @@ -146,7 +150,8 @@ public class TenantRepository { SecretStore secretStore, HostProvisionerProvider hostProvisionerProvider, ConfigserverConfig configserverConfig, - ConfigServerDB configServerDB) { + ConfigServerDB configServerDB, + Zone zone) { this.componentRegistry = componentRegistry; this.hostRegistry = hostRegistry; this.configserverConfig = configserverConfig; @@ -163,6 +168,7 @@ public class TenantRepository { this.secretStore = secretStore; this.hostProvisionerProvider = hostProvisionerProvider; this.configServerDB = configServerDB; + this.zone = zone; curator.framework().getConnectionStateListenable().addListener(this::stateChanged); @@ -298,7 +304,7 @@ public class TenantRepository { configserverConfig, componentRegistry.getStaticConfigDefinitionRepo(), curator, - componentRegistry.getZone(), + zone, flagSource, secretStore); SessionRepository sessionRepository = new SessionRepository(tenantName, @@ -314,7 +320,8 @@ public class TenantRepository { secretStore, hostProvisionerProvider, configserverConfig, - configServerDB); + configServerDB, + zone); log.log(Level.INFO, "Adding tenant '" + tenantName + "'" + ", created " + created); Tenant tenant = new Tenant(tenantName, sessionRepository, applicationRepo, applicationRepo, created); notifyNewTenant(tenant); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java index c5b1cd32d56..d5eac29f81d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.config.server; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.NullConfigModelRegistry; import com.yahoo.config.model.api.ConfigDefinitionRepo; -import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.filedistribution.FileServer; import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker; import com.yahoo.vespa.config.server.host.HostRegistry; @@ -34,7 +33,6 @@ public class InjectedGlobalComponentRegistryTest { private ConfigDefinitionRepo defRepo; private GlobalComponentRegistry globalComponentRegistry; private ModelFactoryRegistry modelFactoryRegistry; - private Zone zone; @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(); @@ -52,12 +50,10 @@ public class InjectedGlobalComponentRegistryTest { new FileServer(temporaryFolder.newFolder("filereferences")), new NoopRpcAuthorizer(), new RpcRequestHandlerProvider()); defRepo = new StaticConfigDefinitionRepo(); - zone = Zone.defaultZone(); globalComponentRegistry = new InjectedGlobalComponentRegistry(modelFactoryRegistry, rpcServer, - defRepo, - zone); + defRepo); } @Test @@ -66,7 +62,6 @@ public class InjectedGlobalComponentRegistryTest { assertThat(globalComponentRegistry.getReloadListener().hashCode(), is(rpcServer.hashCode())); assertThat(globalComponentRegistry.getTenantListener().hashCode(), is(rpcServer.hashCode())); assertThat(globalComponentRegistry.getStaticConfigDefinitionRepo(), is(defRepo)); - assertThat(globalComponentRegistry.getZone(), is(zone)); } } 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 defc4826bd3..0502868876f 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 @@ -3,7 +3,6 @@ package com.yahoo.vespa.config.server; import com.yahoo.config.model.NullConfigModelRegistry; import com.yahoo.config.model.api.ConfigDefinitionRepo; -import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.application.TenantApplicationsTest; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.tenant.MockTenantListener; @@ -22,20 +21,17 @@ public class TestComponentRegistry implements GlobalComponentRegistry { private final ReloadListener reloadListener; private final TenantListener tenantListener; private final ModelFactoryRegistry modelFactoryRegistry; - private final Zone zone; private final Clock clock; private TestComponentRegistry(ModelFactoryRegistry modelFactoryRegistry, ConfigDefinitionRepo defRepo, ReloadListener reloadListener, TenantListener tenantListener, - Zone zone, Clock clock) { this.reloadListener = reloadListener; this.tenantListener = tenantListener; this.defRepo = defRepo; this.modelFactoryRegistry = modelFactoryRegistry; - this.zone = zone; this.clock = clock; } @@ -44,7 +40,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { private ReloadListener reloadListener = new TenantApplicationsTest.MockReloadListener(); private final MockTenantListener tenantListener = new MockTenantListener(); private ModelFactoryRegistry modelFactoryRegistry = new ModelFactoryRegistry(Collections.singletonList(new VespaModelFactory(new NullConfigModelRegistry()))); - private Zone zone = Zone.defaultZone(); private Clock clock = Clock.systemUTC(); public Builder modelFactoryRegistry(ModelFactoryRegistry modelFactoryRegistry) { @@ -52,11 +47,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { return this; } - public Builder zone(Zone zone) { - this.zone = zone; - return this; - } - public Builder clock(Clock clock) { this.clock = clock; return this; @@ -77,7 +67,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { defRepo, reloadListener, tenantListener, - zone, clock); } } @@ -91,10 +80,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { @Override public ModelFactoryRegistry getModelFactoryRegistry() { return modelFactoryRegistry; } @Override - public Zone getZone() { - return zone; - } - @Override public Clock getClock() { return clock;} } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java index 011c9da5409..fa44497ee38 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java @@ -285,15 +285,15 @@ public class DeployTester { TestComponentRegistry.Builder testComponentRegistryBuilder = new TestComponentRegistry.Builder() .clock(clock) - .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories)) - .zone(zone); + .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories)); TestTenantRepository.Builder builder = new TestTenantRepository.Builder() .withComponentRegistry(testComponentRegistryBuilder.build()) .withConfigserverConfig(configserverConfig) .withCurator(curator) .withMetrics(Optional.ofNullable(metrics).orElse(Metrics.createTestMetrics())) - .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)); + .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)) + .withZone(zone); if (configserverConfig.hostedVespa()) builder.withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, true)); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HostHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HostHandlerTest.java index 675c85006d4..4d4a06dd05c 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HostHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HostHandlerTest.java @@ -54,7 +54,6 @@ public class HostHandlerTest { .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() - .zone(zone) .build(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) 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 9939856d4db..6aeac108c54 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 @@ -14,6 +14,7 @@ import com.yahoo.config.provision.ApplicationName; import com.yahoo.config.provision.CertificateNotReadyException; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.TenantName; +import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.exception.LoadBalancerServiceException; import com.yahoo.io.IOUtils; import com.yahoo.path.Path; @@ -80,6 +81,7 @@ public class SessionPreparerTest { private static final File invalidTestApp = new File("src/test/apps/illegalApp"); private static final Version version123 = new Version(1, 2, 3); private static final Version version321 = new Version(3, 2, 1); + private static final Zone zone = Zone.defaultZone(); private final KeyPair keyPair = KeyUtils.generateKeypair(KeyAlgorithm.EC, 256); private final X509Certificate certificate = X509CertificateBuilder.fromKeypair(keyPair, new X500Principal("CN=subject"), Instant.now(), Instant.now().plus(1, ChronoUnit.DAYS), SignatureAlgorithm.SHA512_WITH_ECDSA, BigInteger.valueOf(12345)).build(); @@ -130,7 +132,7 @@ public class SessionPreparerTest { configserverConfig, componentRegistry.getStaticConfigDefinitionRepo(), curator, - componentRegistry.getZone(), + zone, flagSource, secretStore); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java index fe325488601..ba88421bf1c 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java @@ -8,10 +8,7 @@ import com.yahoo.concurrent.StripedExecutor; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ApplicationName; -import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; -import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.ConfigServerDB; @@ -205,9 +202,7 @@ public class TenantRepositoryTest { } private GlobalComponentRegistry createComponentRegistry() { - return new TestComponentRegistry.Builder() - .zone(new Zone(SystemName.cd, Environment.prod, RegionName.from("foo"))) - .build(); + return new TestComponentRegistry.Builder().build(); } private static class FailingDuringBootstrapTenantRepository extends TenantRepository { @@ -224,7 +219,8 @@ public class TenantRepositoryTest { new MockSecretStore(), HostProvisionerProvider.withProvisioner(new MockProvisioner(), false), configserverConfig, - new ConfigServerDB(configserverConfig)); + new ConfigServerDB(configserverConfig), + Zone.defaultZone()); } @Override diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java index 2cf79224bca..a8b7dc27131 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.tenant; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.concurrent.InThreadExecutorService; import com.yahoo.concurrent.StripedExecutor; +import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.ConfigServerDB; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.MockSecretStore; @@ -29,7 +30,8 @@ public class TestTenantRepository extends TenantRepository { FileDistributionFactory fileDistributionFactory, FlagSource flagSource, HostProvisionerProvider hostProvisionerProvider, - ConfigserverConfig configserverConfig) { + ConfigserverConfig configserverConfig, + Zone zone) { super(componentRegistry, hostRegistry, curator, @@ -41,7 +43,8 @@ public class TestTenantRepository extends TenantRepository { new MockSecretStore(), hostProvisionerProvider, configserverConfig, - new ConfigServerDB(configserverConfig)); + new ConfigServerDB(configserverConfig), + zone); } public static class Builder { @@ -54,6 +57,7 @@ public class TestTenantRepository extends TenantRepository { FlagSource flagSource = new InMemoryFlagSource(); HostProvisionerProvider hostProvisionerProvider = HostProvisionerProvider.empty(); ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder().build(); + Zone zone = Zone.defaultZone(); public Builder withFlagSource(FlagSource flagSource) { this.flagSource = flagSource; @@ -95,6 +99,11 @@ public class TestTenantRepository extends TenantRepository { return this; } + public Builder withZone(Zone zone) { + this.zone = zone; + return this; + } + public TenantRepository build() { if (fileDistributionFactory == null) fileDistributionFactory = new FileDistributionFactory(configserverConfig); @@ -105,7 +114,8 @@ public class TestTenantRepository extends TenantRepository { fileDistributionFactory, flagSource, hostProvisionerProvider, - configserverConfig); + configserverConfig, + zone); } } |