diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2023-02-23 16:14:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-23 16:14:36 +0100 |
commit | 3b545f2fe713ca9026ef1679249aea7500202bff (patch) | |
tree | 8eee87e205428725e345d8ae444d1e757076c7ca | |
parent | 1253d95302b4bbea258978bddc6c2431603e6e12 (diff) | |
parent | 6b25d1d63d2a6d3c280abab5d2f9041e9a0d8bd6 (diff) |
Merge pull request #26169 from vespa-engine/hmusum/configserver-cleanup-1a
Hmusum/configserver cleanup 1a
23 files changed, 25 insertions, 180 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index 9865cda7bc9..8a4d523a6e4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -4,8 +4,8 @@ package com.yahoo.vespa.config.server; import ai.vespa.http.DomainName; import ai.vespa.http.HttpURL; import ai.vespa.http.HttpURL.Query; -import ai.vespa.util.http.hc5.VespaHttpClientBuilder; import ai.vespa.util.http.hc5.DefaultHttpClientBuilder; +import ai.vespa.util.http.hc5.VespaHttpClientBuilder; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.component.Version; import com.yahoo.component.annotation.Inject; @@ -94,10 +94,8 @@ import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.orchestrator.Orchestrator; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; -import org.apache.hc.client5.http.ssl.NoopHostnameVerifier; import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.message.BasicHeader; - import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -229,7 +227,6 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye // Should be used by tests only (first constructor in this class makes sure we use injectable components where possible) public static class Builder { private TenantRepository tenantRepository; - private Optional<Provisioner> hostProvisioner; private HttpProxy httpProxy = new HttpProxy(new SimpleHttpFetcher(Duration.ofSeconds(30))); private EndpointsChecker endpointsChecker = __ -> { throw new UnsupportedOperationException(); }; private Clock clock = Clock.systemUTC(); @@ -252,18 +249,6 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye return this; } - public Builder withProvisioner(Provisioner provisioner) { - if (this.hostProvisioner != null) throw new IllegalArgumentException("provisioner already set in builder"); - this.hostProvisioner = Optional.ofNullable(provisioner); - return this; - } - - public Builder withHostProvisionerProvider(HostProvisionerProvider hostProvisionerProvider) { - if (this.hostProvisioner != null) throw new IllegalArgumentException("provisioner already set in builder"); - this.hostProvisioner = hostProvisionerProvider.getHostProvisioner(); - return this; - } - public Builder withHttpProxy(HttpProxy httpProxy) { this.httpProxy = httpProxy; return this; @@ -316,7 +301,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye public ApplicationRepository build() { return new ApplicationRepository(tenantRepository, - hostProvisioner, + tenantRepository.hostProvisionerProvider().getHostProvisioner(), InfraDeployerProvider.empty().getInfraDeployer(), configConvergenceChecker, httpProxy, 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 9229fb88b40..5547156721a 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 @@ -42,11 +42,6 @@ public class HostProvisionerProvider { } // for testing - public static HostProvisionerProvider withProvisioner(Provisioner provisioner, boolean hostedVespa) { - return withProvisioner(provisioner, new ConfigserverConfig(new ConfigserverConfig.Builder().hostedVespa(hostedVespa))); - } - - // for testing public static HostProvisionerProvider withProvisioner(Provisioner provisioner, ConfigserverConfig config) { ComponentRegistry<Provisioner> registry = new ComponentRegistry<>(); registry.register(ComponentId.createAnonymousComponentId("foobar"), provisioner); 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 69d13bf2dea..00a10a97dc3 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 @@ -618,4 +618,6 @@ public class TenantRepository { public com.yahoo.vespa.curator.Curator getCurator() { return curator; } + public HostProvisionerProvider hostProvisionerProvider() { return hostProvisionerProvider; } + } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index 498940f8a63..253b0d7c101 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -13,7 +13,6 @@ import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ApplicationName; import com.yahoo.config.provision.Deployment; -import com.yahoo.config.provision.HostFilter; import com.yahoo.config.provision.HostSpec; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.NetworkPorts; @@ -38,6 +37,7 @@ import com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs; import com.yahoo.vespa.config.server.filedistribution.FileDirectory; import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionFactory; import com.yahoo.vespa.config.server.http.v2.PrepareResult; +import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.session.LocalSession; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.session.Session; @@ -79,7 +79,6 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; /** * @author hmusum @@ -125,21 +124,21 @@ public class ApplicationRepositoryTest { .build(); flagSource = new InMemoryFlagSource(); fileDirectory = new FileDirectory(configserverConfig); + provisioner = new MockProvisioner(); tenantRepository = new TestTenantRepository.Builder() .withClock(clock) .withConfigserverConfig(configserverConfig) .withCurator(curator) .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)) .withFlagSource(flagSource) + .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, configserverConfig)) .build(); tenantRepository.addTenant(TenantRepository.HOSTED_VESPA_TENANT); tenantRepository.addTenant(tenant1); tenantRepository.addTenant(tenant2); orchestrator = new OrchestratorMock(); - provisioner = new MockProvisioner(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(provisioner) .withConfigserverConfig(configserverConfig) .withOrchestrator(orchestrator) .withLogRetriever(new MockLogRetriever()) @@ -177,7 +176,6 @@ public class ApplicationRepositoryTest { public void prepareAndActivateWithRestart() { applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(provisioner) .withConfigserverConfig(configserverConfig) .withOrchestrator(orchestrator) .withLogRetriever(new MockLogRetriever()) @@ -188,8 +186,7 @@ public class ApplicationRepositoryTest { prepareAndActivate(testAppJdiscOnly); PrepareResult result = prepareAndActivate(testAppJdiscOnlyRestart); assertTrue(result.configChangeActions().getRefeedActions().isEmpty()); - assertTrue(result.configChangeActions().getRestartActions().isEmpty()); - assertEquals(HostFilter.hostname("mytesthost2"), provisioner.lastRestartFilter()); + assertFalse(result.configChangeActions().getRestartActions().isEmpty()); } @Test @@ -197,7 +194,6 @@ public class ApplicationRepositoryTest { applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) .withOrchestrator(orchestrator) - .withProvisioner(null) .build(); prepareAndActivate(testAppJdiscOnly); @@ -285,7 +281,6 @@ public class ApplicationRepositoryTest { applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(provisioner) .withOrchestrator(orchestrator) .withClock(clock) .build(); @@ -329,20 +324,16 @@ public class ApplicationRepositoryTest { File sessionFile = new File(tenantFileSystemDirs.sessionsPath(), String.valueOf(sessionId)); assertTrue(sessionFile.exists()); - // Delete app and verify that it has been deleted from repos and provisioner and no application set exists + // Delete app and verify that it has been deleted from repos and no application set exists assertTrue(applicationRepository.delete(applicationId())); assertTrue(applicationRepository.getActiveSession(applicationId()).isEmpty()); assertEquals(Optional.empty(), sessionRepository.getRemoteSession(sessionId).applicationSet()); - assertEquals(1, provisioner.removeCount()); - assertEquals(tenant().getName(), provisioner.lastApplicationId().tenant()); - assertEquals(applicationId(), provisioner.lastApplicationId()); assertTrue(curator.exists(sessionNode)); assertEquals(Session.Status.DELETE.name(), Utf8.toString(curator.getData(sessionNode.append("sessionState")).get())); assertTrue(sessionFile.exists()); - // Deleting a non-existent application still attempts to remove resources + // Deleting a non-existent application will return false assertFalse(applicationRepository.delete(applicationId())); - assertEquals(2, provisioner.removeCount()); } { @@ -358,46 +349,9 @@ public class ApplicationRepositoryTest { // Delete app with id fooId, should not affect original app assertTrue(applicationRepository.delete(fooId)); - assertEquals(fooId, provisioner.lastApplicationId()); - assertNotNull(applicationRepository.getActiveSession(applicationId())); - - assertTrue(applicationRepository.delete(applicationId())); - } - - // If delete fails, a retry should work if the failure is transient and zookeeper state should be consistent - { - long sessionId = deployApp(testApp).sessionId(); - assertNotNull(sessionRepository.getRemoteSession(sessionId)); - assertNotNull(applicationRepository.getActiveSession(applicationId())); - assertEquals(sessionId, applicationRepository.getActiveSession(applicationId()).get().getSessionId()); - assertNotNull(applicationRepository.getApplication(applicationId())); - - provisioner.failureOnRemove(true); - try { - applicationRepository.delete(applicationId()); - fail("Should fail with RuntimeException"); - } catch (RuntimeException e) { - // ignore - } - assertNotNull(sessionRepository.getRemoteSession(sessionId)); assertNotNull(applicationRepository.getActiveSession(applicationId())); - assertEquals(sessionId, applicationRepository.getActiveSession(applicationId()).get().getSessionId()); - // Delete should work when there is no failure anymore - provisioner.failureOnRemove(false); assertTrue(applicationRepository.delete(applicationId())); - - // Session should be in state DELETE - Path sessionNode = sessionRepository.getSessionPath(sessionId); - assertEquals(Session.Status.DELETE.name(), Utf8.toString(curator.getData(sessionNode.append("sessionState")).get())); - assertNotNull(sessionRepository.getRemoteSession(sessionId)); // session still exists - assertTrue(applicationRepository.getActiveSession(applicationId()).isEmpty()); // but it is not active - try { - applicationRepository.getApplication(applicationId()); - fail("Should fail with NotFoundException, application should not exist"); - } catch (NotFoundException e) { - // ignore - } } } @@ -522,7 +476,6 @@ public class ApplicationRepositoryTest { MockMetric actual = new MockMetric(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(provisioner) .withOrchestrator(orchestrator) .withMetric(actual) .withClock(new ManualClock()) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/MockProvisioner.java b/configserver/src/test/java/com/yahoo/vespa/config/server/MockProvisioner.java index 0ba3a6d883c..8effd9b6dfe 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/MockProvisioner.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/MockProvisioner.java @@ -22,15 +22,7 @@ import java.util.List; */ public class MockProvisioner implements Provisioner { - private boolean activated = false; - private int removeCount = 0; - private boolean restarted = false; - private ApplicationId lastApplicationId; - private Collection<HostSpec> lastHosts; - private HostFilter lastRestartFilter; - private boolean transientFailureOnPrepare = false; - private boolean failureOnRemove = false; private HostProvisioner hostProvisioner = null; public MockProvisioner hostProvisioner(HostProvisioner hostProvisioner) { @@ -43,10 +35,6 @@ public class MockProvisioner implements Provisioner { return this; } - public void failureOnRemove(boolean failureOnRemove) { - this.failureOnRemove = failureOnRemove; - } - @Override public List<HostSpec> prepare(ApplicationId applicationId, ClusterSpec cluster, Capacity capacity, ProvisionLogger logger) { if (hostProvisioner != null) { @@ -60,25 +48,14 @@ public class MockProvisioner implements Provisioner { @Override public void activate(Collection<HostSpec> hosts, ActivationContext context, ApplicationTransaction transaction) { - activated = true; - lastApplicationId = transaction.application(); - lastHosts = hosts; } @Override public void remove(ApplicationTransaction transaction) { - if (failureOnRemove) - throw new IllegalStateException("Unable to remove " + transaction.application()); - - removeCount++; - lastApplicationId = transaction.application(); } @Override public void restart(ApplicationId application, HostFilter filter) { - restarted = true; - lastApplicationId = application; - lastRestartFilter = filter; } @Override @@ -86,28 +63,4 @@ public class MockProvisioner implements Provisioner { return new ProvisionLock(application, () -> {}); } - public Collection<HostSpec> lastHosts() { - return lastHosts; - } - - public boolean activated() { - return activated; - } - - public int removeCount() { - return removeCount; - } - - public boolean restarted() { - return restarted; - } - - public ApplicationId lastApplicationId() { - return lastApplicationId; - } - - public HostFilter lastRestartFilter() { - return lastRestartFilter; - } - } 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 ab527833803..c716219f86b 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 @@ -296,7 +296,8 @@ public class DeployTester { .withZone(zone) .withFlagSource(flagSource); - if (configserverConfig.hostedVespa()) builder.withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, true)); + if (configserverConfig.hostedVespa()) + builder.withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, configserverConfig)); TenantRepository tenantRepository = builder.build(); tenantRepository.addTenant(tenantName); @@ -306,7 +307,6 @@ public class DeployTester { .withConfigserverConfig(configserverConfig) .withOrchestrator(new OrchestratorMock()) .withClock(clock) - .withProvisioner(provisioner) .withConfigConvergenceChecker(configConvergenceChecker) .withFlagSource(flagSource) .build(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java index 279f3a237e8..6cfdab1257f 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java @@ -7,7 +7,6 @@ import com.yahoo.config.provision.TenantName; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.TenantRepository; @@ -16,7 +15,6 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.File; import java.io.IOException; import java.util.Collections; @@ -59,7 +57,6 @@ public class HttpGetConfigHandlerTest { tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpListConfigsHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpListConfigsHandlerTest.java index 520b4d0edc5..79881d07b25 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpListConfigsHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpListConfigsHandlerTest.java @@ -8,7 +8,6 @@ import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HttpListConfigsHandler.ListConfigsResponse; import com.yahoo.vespa.config.server.session.PrepareParams; @@ -18,7 +17,6 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.File; import java.io.IOException; import java.util.HashSet; @@ -64,7 +62,6 @@ public class HttpListConfigsHandlerTest { tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java index 052f39c9e1f..60ee3299de5 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java @@ -9,7 +9,6 @@ import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.jdisc.Response; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.ContentHandlerTestBase; import com.yahoo.vespa.config.server.session.PrepareParams; @@ -21,7 +20,6 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.File; import java.io.IOException; @@ -63,7 +61,6 @@ public class ApplicationContentHandlerTest extends ContentHandlerTestBase { applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); 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 c270b4559f9..e8c4d819c31 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 @@ -87,9 +87,7 @@ import static com.yahoo.vespa.config.server.http.v2.ApplicationHandler.HttpServi import static com.yahoo.yolean.Exceptions.uncheck; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; @@ -136,14 +134,13 @@ public class ApplicationHandlerTest { .withClock(clock) .withConfigserverConfig(configserverConfig) .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)) - .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, false)) + .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, configserverConfig)) .withModelFactoryRegistry(new ModelFactoryRegistry(modelFactories)) .build(); tenantRepository.addTenant(mytenantName); orchestrator = new OrchestratorMock(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(provisioner) .withOrchestrator(orchestrator) .withClock(clock) .withTesterClient(testerClient) @@ -350,11 +347,9 @@ public class ApplicationHandlerTest { @Test public void testRestart() throws Exception { - applicationRepository.deploy(testApp, prepareParams(applicationId)); - assertFalse(provisioner.restarted()); + var result = applicationRepository.deploy(testApp, prepareParams(applicationId)); + assertTrue(result.configChangeActions().getRestartActions().isEmpty()); restart(applicationId, Zone.defaultZone()); - assertTrue(provisioner.restarted()); - assertEquals(applicationId, provisioner.lastApplicationId()); } @Test @@ -378,7 +373,6 @@ public class ApplicationHandlerTest { HttpProxy mockHttpProxy = mock(HttpProxy.class); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withHostProvisionerProvider(HostProvisionerProvider.empty()) .withOrchestrator(orchestrator) .withTesterClient(testerClient) .withHttpProxy(mockHttpProxy) 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 fbc5e87c329..ba1d69c13dd 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 @@ -11,7 +11,6 @@ import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.jdisc.Response; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; @@ -22,7 +21,6 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.File; import java.io.IOException; @@ -58,7 +56,6 @@ public class HostHandlerTest { tenantRepository.addTenant(mytenant); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); 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 9aae64cb884..a0b5b879e45 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 @@ -9,7 +9,6 @@ import com.yahoo.config.provision.TenantName; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpConfigRequest; @@ -23,7 +22,6 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.File; import java.io.IOException; import java.util.Collections; @@ -60,15 +58,13 @@ public class HttpGetConfigHandlerTest { .configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath()) .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); - MockProvisioner provisioner = new MockProvisioner(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withConfigserverConfig(configserverConfig) - .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, false)) + .withHostProvisionerProvider(HostProvisionerProvider.empty()) .build(); tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(provisioner) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpListConfigsHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpListConfigsHandlerTest.java index 2ee1064f614..3762e52ae62 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpListConfigsHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpListConfigsHandlerTest.java @@ -11,7 +11,6 @@ import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; @@ -23,7 +22,6 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.File; import java.io.IOException; import java.util.HashSet; @@ -71,7 +69,6 @@ public class HttpListConfigsHandlerTest { tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java index 1c71ef0b7fb..d7e6273352b 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java @@ -19,6 +19,7 @@ import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; import com.yahoo.vespa.config.server.model.TestModelFactory; 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.session.Session; import com.yahoo.vespa.config.server.tenant.Tenant; @@ -74,11 +75,11 @@ public class SessionActiveHandlerTest { TenantRepository tenantRepository = new TestTenantRepository.Builder() .withConfigserverConfig(configserverConfig) .withModelFactoryRegistry(new ModelFactoryRegistry(List.of((modelFactory)))) + .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, configserverConfig)) .build(); tenantRepository.addTenant(tenantName); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(provisioner) .withOrchestrator(new OrchestratorMock()) .withClock(clock) .withConfigserverConfig(configserverConfig) @@ -164,8 +165,6 @@ public class SessionActiveHandlerTest { "/environment/" + "prod" + "/region/" + "default" + "/instance/" + "default")); - assertTrue(provisioner.activated()); - assertEquals(1, provisioner.lastHosts().size()); } private SessionActiveHandler createHandler() { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java index 7c2e0be0c3a..b17f80fd510 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java @@ -11,7 +11,6 @@ import com.yahoo.jdisc.Response; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.text.Utf8; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.ContentHandlerTestBase; import com.yahoo.vespa.config.server.http.SessionHandlerTest; @@ -24,7 +23,6 @@ import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; @@ -63,7 +61,6 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); @@ -186,7 +183,6 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { SessionContentHandler.testContext(), new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withClock(Clock.systemUTC()) .build() diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java index 2e86f5e0538..04531fbb2e0 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java @@ -1,15 +1,14 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.http.v2; +import ai.vespa.http.HttpURL.Path; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; -import ai.vespa.http.HttpURL.Path; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.CompressedApplicationInputStreamTest; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HttpErrorResponse; @@ -23,7 +22,6 @@ import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; @@ -84,7 +82,6 @@ public class SessionCreateHandlerTest extends SessionHandlerTest { .build(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .build(); tenantRepository.addTenant(tenant); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java index de6073bb1ea..765523177a9 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java @@ -16,7 +16,6 @@ import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.slime.Slime; import com.yahoo.slime.SlimeUtils; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HttpErrorResponse; @@ -30,7 +29,6 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -82,7 +80,6 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { tenantRepository.addTenant(tenant); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withClock(clock) .withConfigserverConfig(configserverConfig) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java index b8bd35a564a..b39050250f9 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java @@ -10,7 +10,6 @@ import com.yahoo.container.jdisc.HttpRequestBuilder; import com.yahoo.jdisc.http.HttpRequest.Method; import com.yahoo.restapi.RestApiTestDriver; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.TenantRepository; @@ -20,7 +19,6 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; - import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; @@ -58,7 +56,6 @@ public class TenantHandlerTest { .build(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .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 a2dc0216b72..5fb92e1f66f 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 @@ -41,13 +41,12 @@ class MaintainerTester { .build(); tenantRepository = new TestTenantRepository.Builder() .withClock(clock) - .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, true)) + .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, configserverConfig)) .withConfigserverConfig(configserverConfig) .withModelFactoryRegistry(new ModelFactoryRegistry(List.of(new DeployTester.CountingModelFactory(clock)))) .build(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(provisioner) .withOrchestrator(new OrchestratorMock()) .withLogRetriever(new MockLogRetriever()) .withClock(clock) 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 b29edd480ad..c40af30d1f4 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 @@ -12,7 +12,6 @@ import com.yahoo.jrt.Transport; import com.yahoo.test.ManualClock; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.MemoryGenerationCounter; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.PortRangeAllocator; import com.yahoo.vespa.config.server.SuperModelManager; import com.yahoo.vespa.config.server.SuperModelRequestHandler; @@ -87,7 +86,6 @@ public class RpcTester implements AutoCloseable { applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) .withConfigserverConfig(configserverConfig) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .build(); } 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 c7113bbf803..cc6cd4d86e9 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 @@ -335,7 +335,9 @@ 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(), true)); + var configserverConfig = new ConfigserverConfig.Builder().hostedVespa(true).build(); + MockProvisioner provisioner = new MockProvisioner().transientFailureOnPrepare(); + preparer = createPreparer(HostProvisionerProvider.withProvisioner(provisioner, configserverConfig)); 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/session/SessionRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java index a5360fbc01c..83ada4122c2 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java @@ -19,7 +19,6 @@ import com.yahoo.io.reader.NamedReader; import com.yahoo.path.Path; import com.yahoo.text.Utf8; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionFactory; @@ -103,7 +102,6 @@ public class SessionRepositoryTest { tenantRepository.addTenant(SessionRepositoryTest.tenantName); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withFlagSource(flagSource) .build(); 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 823466603b1..9af1bbb875e 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 @@ -13,7 +13,6 @@ import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.ConfigServerDB; -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.TestConfigDefinitionRepo; @@ -219,7 +218,7 @@ public class TenantRepositoryTest { flagSource, new InThreadExecutorService(), new MockSecretStore(), - HostProvisionerProvider.withProvisioner(new MockProvisioner(), false), + HostProvisionerProvider.empty(), configserverConfig, new ConfigServerDB(configserverConfig), Zone.defaultZone(), |