summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-01-20 13:55:51 +0100
committerHarald Musum <musum@verizonmedia.com>2021-01-20 13:55:51 +0100
commit34def165401f453ef09f0b4512bde09c61fa8a21 (patch)
treed8eb76058fc92588479f4d20d04bbaea42d029f7 /configserver
parenta0d7822978d83bebb173887da4bf30319f37f216 (diff)
Move provisioner out of GlobalComponentRegistry
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java3
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java11
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/provision/HostProvisionerProvider.java19
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java9
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java16
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java16
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java13
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java9
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java7
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java2
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java5
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java17
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);
}
}