diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-01-20 13:55:51 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-01-20 13:55:51 +0100 |
commit | 34def165401f453ef09f0b4512bde09c61fa8a21 (patch) | |
tree | d8eb76058fc92588479f4d20d04bbaea42d029f7 /configserver | |
parent | a0d7822978d83bebb173887da4bf30319f37f216 (diff) |
Move provisioner out of GlobalComponentRegistry
Diffstat (limited to 'configserver')
15 files changed, 69 insertions, 70 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 00fc346397d..ec4523c4ba0 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 @@ -3,13 +3,11 @@ package com.yahoo.vespa.config.server; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.api.ConfigDefinitionRepo; -import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.tenant.TenantListener; import java.time.Clock; -import java.util.Optional; /** * Interface representing all global config server components used within the config server. @@ -23,7 +21,6 @@ public interface GlobalComponentRegistry { ReloadListener getReloadListener(); ConfigDefinitionRepo getStaticConfigDefinitionRepo(); ModelFactoryRegistry getModelFactoryRegistry(); - Optional<Provisioner> getHostProvisioner(); Zone getZone(); Clock getClock(); ConfigServerDB getConfigServerDB(); 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 0b95c29249a..433e0971c61 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 @@ -4,15 +4,12 @@ package com.yahoo.vespa.config.server; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.api.ConfigDefinitionRepo; -import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; -import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.rpc.RpcServer; import com.yahoo.vespa.config.server.tenant.TenantListener; import java.time.Clock; -import java.util.Optional; /** * Registry containing all the "static"/"global" components in a config server in one place. @@ -25,7 +22,6 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry private final RpcServer rpcServer; private final ConfigserverConfig configserverConfig; private final ConfigDefinitionRepo staticConfigDefinitionRepo; - private final Optional<Provisioner> hostProvisioner; private final Zone zone; private final ConfigServerDB configServerDB; @@ -35,14 +31,12 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry RpcServer rpcServer, ConfigserverConfig configserverConfig, ConfigDefinitionRepo staticConfigDefinitionRepo, - HostProvisionerProvider hostProvisionerProvider, Zone zone, ConfigServerDB configServerDB) { this.modelFactoryRegistry = modelFactoryRegistry; this.rpcServer = rpcServer; this.configserverConfig = configserverConfig; this.staticConfigDefinitionRepo = staticConfigDefinitionRepo; - this.hostProvisioner = hostProvisionerProvider.getHostProvisioner(); this.zone = zone; this.configServerDB = configServerDB; } @@ -59,11 +53,6 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry public ModelFactoryRegistry getModelFactoryRegistry() { return modelFactoryRegistry; } @Override - public Optional<Provisioner> getHostProvisioner() { - return hostProvisioner; - } - - @Override public Zone getZone() { return zone; } 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 943f5658773..f779cad245a 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 @@ -70,11 +70,12 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> { Metrics metrics, PermanentApplicationPackage permanentApplicationPackage, FlagSource flagSource, - SecretStore secretStore) { + SecretStore secretStore, + HostProvisionerProvider hostProvisionerProvider) { super(globalComponentRegistry.getModelFactoryRegistry(), globalComponentRegistry.getConfigserverConfig(), globalComponentRegistry.getZone(), - HostProvisionerProvider.from(globalComponentRegistry.getHostProvisioner())); + hostProvisionerProvider); this.tenant = tenant; this.applicationGeneration = applicationGeneration; this.zkClient = zkClient; diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/provision/HostProvisionerProvider.java b/configserver/src/main/java/com/yahoo/vespa/config/server/provision/HostProvisionerProvider.java index 13c21a065ff..729f1df31c1 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/provision/HostProvisionerProvider.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/provision/HostProvisionerProvider.java @@ -1,4 +1,4 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.provision; import com.yahoo.cloud.config.ConfigserverConfig; @@ -42,18 +42,15 @@ public class HostProvisionerProvider { } // for testing - public static HostProvisionerProvider withProvisioner(Provisioner provisioner) { - ComponentRegistry<Provisioner> registry = new ComponentRegistry<>(); - registry.register(ComponentId.createAnonymousComponentId("foobar"), provisioner); - return new HostProvisionerProvider(registry, new ConfigserverConfig(new ConfigserverConfig.Builder().hostedVespa(true))); + public static HostProvisionerProvider withProvisioner(Provisioner provisioner, boolean hostedVespa) { + return withProvisioner(provisioner, new ConfigserverConfig(new ConfigserverConfig.Builder().hostedVespa(hostedVespa))); } - /** Creates either an empty provider or a provider having the given provisioner */ - public static HostProvisionerProvider from(Optional<Provisioner> provisioner) { - if (provisioner.isPresent()) - return withProvisioner(provisioner.get()); - else - return empty(); + // for testing + public static HostProvisionerProvider withProvisioner(Provisioner provisioner, ConfigserverConfig config) { + ComponentRegistry<Provisioner> registry = new ComponentRegistry<>(); + registry.register(ComponentId.createAnonymousComponentId("foobar"), provisioner); + return new HostProvisionerProvider(registry, config); } } 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 e40a557a156..041768ec41e 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 @@ -30,6 +30,7 @@ import com.yahoo.vespa.config.server.filedistribution.FileDirectory; import com.yahoo.vespa.config.server.modelfactory.ActivatedModelsBuilder; 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.tenant.TenantRepository; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.config.server.zookeeper.SessionCounter; @@ -100,6 +101,7 @@ public class SessionRepository { private final ConfigCurator configCurator; private final SessionCounter sessionCounter; private final SecretStore secretStore; + private final HostProvisionerProvider hostProvisionerProvider; public SessionRepository(TenantName tenantName, GlobalComponentRegistry componentRegistry, @@ -111,7 +113,8 @@ public class SessionRepository { PermanentApplicationPackage permanentApplicationPackage, FlagSource flagSource, ExecutorService zkCacheExecutor, - SecretStore secretStore) { + SecretStore secretStore, + HostProvisionerProvider hostProvisionerProvider) { this.tenantName = tenantName; this.componentRegistry = componentRegistry; this.configCurator = ConfigCurator.create(curator); @@ -129,6 +132,7 @@ public class SessionRepository { this.metrics = metrics; this.metricUpdater = metrics.getOrCreateMetricUpdater(Metrics.createDimensions(tenantName)); this.secretStore = secretStore; + this.hostProvisionerProvider = hostProvisionerProvider; loadSessions(); // Needs to be done before creating cache below this.directoryCache = curator.createDirectoryCache(sessionsPath.getAbsolute(), false, false, zkCacheExecutor); @@ -453,7 +457,8 @@ public class SessionRepository { metrics, permanentApplicationPackage, flagSource, - secretStore); + secretStore, + hostProvisionerProvider); // 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 97320698200..7daf56df487 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 @@ -97,6 +97,7 @@ public class TenantRepository { private final FileDistributionFactory fileDistributionFactory; private final FlagSource flagSource; private final SecretStore secretStore; + private final HostProvisionerProvider hostProvisionerProvider; private final ExecutorService bootstrapExecutor; private final ScheduledExecutorService checkForRemovedApplicationsService = new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory("check for removed applications")); @@ -113,7 +114,8 @@ public class TenantRepository { Curator curator, Metrics metrics, FlagSource flagSource, - SecretStore secretStore) { + SecretStore secretStore, + HostProvisionerProvider hostProvisionerProvider) { this(componentRegistry, hostRegistry, curator, @@ -122,7 +124,8 @@ public class TenantRepository { new FileDistributionFactory(componentRegistry.getConfigserverConfig()), flagSource, Executors.newFixedThreadPool(1, ThreadFactoryFactory.getThreadFactory(TenantRepository.class.getName())), - secretStore); + secretStore, + hostProvisionerProvider); } public TenantRepository(GlobalComponentRegistry componentRegistry, @@ -133,7 +136,8 @@ public class TenantRepository { FileDistributionFactory fileDistributionFactory, FlagSource flagSource, ExecutorService zkCacheExecutor, - SecretStore secretStore) { + SecretStore secretStore, + HostProvisionerProvider hostProvisionerProvider) { this.componentRegistry = componentRegistry; this.hostRegistry = hostRegistry; ConfigserverConfig configserverConfig = componentRegistry.getConfigserverConfig(); @@ -148,6 +152,7 @@ public class TenantRepository { this.fileDistributionFactory = fileDistributionFactory; this.flagSource = flagSource; this.secretStore = secretStore; + this.hostProvisionerProvider = hostProvisionerProvider; curator.framework().getConnectionStateListenable().addListener(this::stateChanged); @@ -278,7 +283,7 @@ public class TenantRepository { PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage(componentRegistry.getConfigserverConfig()); SessionPreparer sessionPreparer = new SessionPreparer(componentRegistry.getModelFactoryRegistry(), fileDistributionFactory, - HostProvisionerProvider.from(componentRegistry.getHostProvisioner()), + hostProvisionerProvider, permanentApplicationPackage, componentRegistry.getConfigserverConfig(), componentRegistry.getStaticConfigDefinitionRepo(), @@ -296,7 +301,8 @@ public class TenantRepository { permanentApplicationPackage, flagSource, zkCacheExecutor, - secretStore); + secretStore, + hostProvisionerProvider); 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 a651f947136..9665e0095e9 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 @@ -55,14 +55,12 @@ public class InjectedGlobalComponentRegistryTest { new FileServer(temporaryFolder.newFolder("filereferences")), new NoopRpcAuthorizer(), new RpcRequestHandlerProvider()); defRepo = new StaticConfigDefinitionRepo(); - HostProvisionerProvider hostProvisionerProvider = HostProvisionerProvider.withProvisioner(new MockProvisioner()); zone = Zone.defaultZone(); globalComponentRegistry = new InjectedGlobalComponentRegistry(modelFactoryRegistry, rpcServer, configserverConfig, defRepo, - hostProvisionerProvider, zone, new ConfigServerDB(configserverConfig)); } @@ -75,7 +73,6 @@ public class InjectedGlobalComponentRegistryTest { assertThat(globalComponentRegistry.getTenantListener().hashCode(), is(rpcServer.hashCode())); assertThat(globalComponentRegistry.getStaticConfigDefinitionRepo(), is(defRepo)); assertThat(globalComponentRegistry.getZone(), is(zone)); - assertTrue(globalComponentRegistry.getHostProvisioner().isPresent()); } } 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 c2571fbf224..24f59ee8675 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 @@ -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.Provisioner; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.application.TenantApplicationsTest; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; @@ -15,7 +14,6 @@ import com.yahoo.vespa.model.VespaModelFactory; import java.nio.file.Files; import java.time.Clock; import java.util.Collections; -import java.util.Optional; import static com.yahoo.yolean.Exceptions.uncheck; @@ -29,14 +27,12 @@ public class TestComponentRegistry implements GlobalComponentRegistry { private final ReloadListener reloadListener; private final TenantListener tenantListener; private final ModelFactoryRegistry modelFactoryRegistry; - private final Optional<Provisioner> hostProvisioner; private final Zone zone; private final Clock clock; private final ConfigServerDB configServerDB; private TestComponentRegistry(ModelFactoryRegistry modelFactoryRegistry, ConfigserverConfig configserverConfig, - Optional<Provisioner> hostProvisioner, ConfigDefinitionRepo defRepo, ReloadListener reloadListener, TenantListener tenantListener, @@ -47,7 +43,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { this.tenantListener = tenantListener; this.defRepo = defRepo; this.modelFactoryRegistry = modelFactoryRegistry; - this.hostProvisioner = hostProvisioner; this.zone = zone; this.clock = clock; this.configServerDB = new ConfigServerDB(configserverConfig); @@ -63,7 +58,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 Optional<Provisioner> hostProvisioner = Optional.empty(); private Zone zone = Zone.defaultZone(); private Clock clock = Clock.systemUTC(); @@ -77,11 +71,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { return this; } - public Builder provisioner(Provisioner provisioner) { - this.hostProvisioner = Optional.ofNullable(provisioner); - return this; - } - public Builder zone(Zone zone) { this.zone = zone; return this; @@ -105,7 +94,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { public TestComponentRegistry build() { return new TestComponentRegistry(modelFactoryRegistry, configserverConfig, - hostProvisioner, defRepo, reloadListener, tenantListener, @@ -125,10 +113,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { @Override public ModelFactoryRegistry getModelFactoryRegistry() { return modelFactoryRegistry; } @Override - public Optional<Provisioner> getHostProvisioner() { - return hostProvisioner; - } - @Override public Zone getZone() { return zone; } 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 9e21bcc315d..eb8f633f4ba 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 @@ -30,6 +30,7 @@ import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionFactor import com.yahoo.vespa.config.server.http.v2.PrepareResult; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.monitoring.Metrics; +import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.session.Session; import com.yahoo.vespa.config.server.tenant.Tenant; @@ -287,14 +288,16 @@ public class DeployTester { .configServerConfig(configserverConfig) .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories)) .zone(zone); - if (configserverConfig.hostedVespa()) testComponentRegistryBuilder.provisioner(provisioner); - TenantRepository tenantRepository = new TestTenantRepository.Builder() - .withComponentRegistry(testComponentRegistryBuilder.build()) + TestTenantRepository.Builder builder = new TestTenantRepository.Builder() + .withComponentRegistry(testComponentRegistryBuilder.build()) .withCurator(curator) .withMetrics(Optional.ofNullable(metrics).orElse(Metrics.createTestMetrics())) - .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)) - .build(); + .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)); + + if (configserverConfig.hostedVespa()) builder.withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, true)); + + TenantRepository tenantRepository = builder.build(); tenantRepository.addTenant(tenantName); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java index 05b09fb4204..0e0fd5babd5 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java @@ -110,17 +110,17 @@ public class ApplicationHandlerTest { .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() - .provisioner(provisioner) .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories)) .configServerConfig(configserverConfig) .clock(clock) .build(); + provisioner = new MockProvisioner(); tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)) + .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, false)) .build(); tenantRepository.addTenant(mytenantName); - provisioner = new MockProvisioner(); orchestrator = new OrchestratorMock(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java index 80ff70120c1..d32734cd571 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java @@ -17,6 +17,7 @@ import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpConfigRequest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; import com.yahoo.vespa.config.server.http.SessionHandlerTest; +import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.tenant.TestTenantRepository; @@ -67,11 +68,15 @@ public class HttpGetConfigHandlerTest { .configDefinitionRepo(new TestConfigDefinitionRepo()) .configServerConfig(configserverConfig) .build(); - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + MockProvisioner provisioner = new MockProvisioner(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, false)) + .build(); tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) + .withProvisioner(provisioner) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); 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 2803747bb59..3e9cbc042bd 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 @@ -12,6 +12,7 @@ import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.deploy.DeployTester; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; +import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.tenant.TestTenantRepository; @@ -43,10 +44,12 @@ class MaintainerTester { GlobalComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .clock(clock) .configServerConfig(configserverConfig) - .provisioner(provisioner) .modelFactoryRegistry(new ModelFactoryRegistry(List.of(new DeployTester.CountingModelFactory(clock)))) .build(); - tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, true)) + .build(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) .withProvisioner(provisioner) 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 3c44d304de5..c719efd7645 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 @@ -347,7 +347,7 @@ public class SessionPreparerTest { @Test(expected = LoadBalancerServiceException.class) public void require_that_conflict_is_returned_when_creating_load_balancer_fails() throws IOException { - preparer = createPreparer(HostProvisionerProvider.withProvisioner(new MockProvisioner().transientFailureOnPrepare())); + preparer = createPreparer(HostProvisionerProvider.withProvisioner(new MockProvisioner().transientFailureOnPrepare(), true)); var params = new PrepareParams.Builder().applicationId(applicationId("test")).build(); prepare(new File("src/test/resources/deploy/hosted-app"), params); } 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 ab6b50dce2b..c843b5f6119 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 @@ -15,6 +15,7 @@ import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.GlobalComponentRegistry; +import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.MockSecretStore; import com.yahoo.vespa.config.server.ServerCache; import com.yahoo.vespa.config.server.TestComponentRegistry; @@ -26,6 +27,7 @@ import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory; import com.yahoo.vespa.config.server.host.HostRegistry; 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.curator.Curator; import com.yahoo.vespa.curator.mock.MockCurator; import com.yahoo.vespa.flags.InMemoryFlagSource; @@ -215,7 +217,8 @@ public class TenantRepositoryTest { new FileDistributionFactory(new ConfigserverConfig.Builder().build()), new InMemoryFlagSource(), new InThreadExecutorService(), - new MockSecretStore()); + new MockSecretStore(), + HostProvisionerProvider.withProvisioner(new MockProvisioner(), false)); } @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 0faae9762fa..b4922e1f163 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 @@ -8,6 +8,7 @@ import com.yahoo.vespa.config.server.MockSecretStore; import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory; import com.yahoo.vespa.config.server.host.HostRegistry; import com.yahoo.vespa.config.server.monitoring.Metrics; +import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.curator.mock.MockCurator; import com.yahoo.vespa.flags.FlagSource; @@ -24,7 +25,8 @@ public class TestTenantRepository extends TenantRepository { Curator curator, Metrics metrics, FileDistributionFactory fileDistributionFactory, - FlagSource flagSource) { + FlagSource flagSource, + HostProvisionerProvider hostProvisionerProvider) { super(componentRegistry, hostRegistry, curator, @@ -33,7 +35,8 @@ public class TestTenantRepository extends TenantRepository { fileDistributionFactory, flagSource, new InThreadExecutorService(), - new MockSecretStore()); + new MockSecretStore(), + hostProvisionerProvider); } public static class Builder { @@ -44,7 +47,7 @@ public class TestTenantRepository extends TenantRepository { Metrics metrics = Metrics.createTestMetrics(); FileDistributionFactory fileDistributionFactory = null; FlagSource flagSource = new InMemoryFlagSource(); - + HostProvisionerProvider hostProvisionerProvider = HostProvisionerProvider.empty(); public Builder withFlagSource(FlagSource flagSource) { this.flagSource = flagSource; @@ -76,6 +79,11 @@ public class TestTenantRepository extends TenantRepository { return this; } + public Builder withHostProvisionerProvider(HostProvisionerProvider hostProvisionerProvider) { + this.hostProvisionerProvider = hostProvisionerProvider; + return this; + } + public TenantRepository build() { if (fileDistributionFactory == null) fileDistributionFactory = new FileDistributionFactory(componentRegistry.getConfigserverConfig()); @@ -84,7 +92,8 @@ public class TestTenantRepository extends TenantRepository { curator, metrics, fileDistributionFactory, - flagSource); + flagSource, + hostProvisionerProvider); } } |