diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-08-23 13:52:44 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-08-23 13:52:44 +0200 |
commit | 0335e2699eb2d7633884e0fe74bce05d44293fa3 (patch) | |
tree | 7b5627d16e1ba0bdfc44d767c15fe28b6127641d /configserver | |
parent | 81e7965cf9d52869a6d524cc6ebf4ae3f7687906 (diff) |
Add Builder to ApplicationRepository
Diffstat (limited to 'configserver')
18 files changed, 228 insertions, 212 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 467b541d24f..137d0f1889e 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 @@ -125,7 +125,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye private final Clock clock; private final DeployLogger logger = new SilentDeployLogger(); private final ConfigserverConfig configserverConfig; - private final FileDistributionStatus fileDistributionStatus; + private final FileDistributionStatus fileDistributionStatus = new FileDistributionStatus(); private final Orchestrator orchestrator; private final LogRetriever logRetriever; private final TesterClient testerClient; @@ -151,54 +151,12 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye configserverConfig, orchestrator, new LogRetriever(), - new FileDistributionStatus(), Clock.systemUTC(), testerClient, metric, flagSource); } - // For testing - public ApplicationRepository(TenantRepository tenantRepository, - Provisioner hostProvisioner, - Orchestrator orchestrator, - Clock clock) { - this(tenantRepository, - hostProvisioner, - orchestrator, - new ConfigserverConfig(new ConfigserverConfig.Builder()), - new LogRetriever(), - clock, - new TesterClient(), - new NullMetric(), - new InMemoryFlagSource()); - } - - // For testing - public ApplicationRepository(TenantRepository tenantRepository, - Provisioner hostProvisioner, - Orchestrator orchestrator, - ConfigserverConfig configserverConfig, - LogRetriever logRetriever, - Clock clock, - TesterClient testerClient, - Metric metric, - FlagSource flagSource) { - this(tenantRepository, - Optional.of(hostProvisioner), - Optional.empty(), - new ConfigConvergenceChecker(), - new HttpProxy(new SimpleHttpFetcher()), - configserverConfig, - orchestrator, - logRetriever, - new FileDistributionStatus(), - clock, - testerClient, - metric, - flagSource); - } - private ApplicationRepository(TenantRepository tenantRepository, Optional<Provisioner> hostProvisioner, Optional<InfraDeployer> infraDeployer, @@ -207,26 +165,110 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye ConfigserverConfig configserverConfig, Orchestrator orchestrator, LogRetriever logRetriever, - FileDistributionStatus fileDistributionStatus, Clock clock, TesterClient testerClient, Metric metric, FlagSource flagSource) { - this.tenantRepository = tenantRepository; - this.hostProvisioner = hostProvisioner; - this.infraDeployer = infraDeployer; - this.convergeChecker = configConvergenceChecker; - this.httpProxy = httpProxy; - this.configserverConfig = configserverConfig; - this.orchestrator = orchestrator; - this.logRetriever = logRetriever; - this.fileDistributionStatus = fileDistributionStatus; - this.clock = clock; - this.testerClient = testerClient; - this.metric = metric; + this.tenantRepository = Objects.requireNonNull(tenantRepository); + this.hostProvisioner = Objects.requireNonNull(hostProvisioner); + this.infraDeployer = Objects.requireNonNull(infraDeployer); + this.convergeChecker = Objects.requireNonNull(configConvergenceChecker); + this.httpProxy = Objects.requireNonNull(httpProxy); + this.configserverConfig = Objects.requireNonNull(configserverConfig); + this.orchestrator = Objects.requireNonNull(orchestrator); + this.logRetriever = Objects.requireNonNull(logRetriever); + this.clock = Objects.requireNonNull(clock); + this.testerClient = Objects.requireNonNull(testerClient); + this.metric = Objects.requireNonNull(metric); this.useTenantMetaData = Flags.USE_TENANT_META_DATA.bindTo(flagSource); } + public static class Builder { + private TenantRepository tenantRepository; + private Optional<Provisioner> hostProvisioner; + private HttpProxy httpProxy = new HttpProxy(new SimpleHttpFetcher()); + private Clock clock = Clock.systemUTC(); + private ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder().build(); + private Orchestrator orchestrator; + private LogRetriever logRetriever = new LogRetriever(); + private TesterClient testerClient = new TesterClient(); + private Metric metric = new NullMetric(); + private FlagSource flagSource = new InMemoryFlagSource(); + + public Builder withTenantRepository(TenantRepository tenantRepository) { + this.tenantRepository = tenantRepository; + return this; + } + + public Builder withClock(Clock clock) { + this.clock = clock; + 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; + } + + public Builder withConfigserverConfig(ConfigserverConfig configserverConfig) { + this.configserverConfig = configserverConfig; + return this; + } + + public Builder withOrchestrator(Orchestrator orchestrator) { + this.orchestrator = orchestrator; + return this; + } + + public Builder withLogRetriever(LogRetriever logRetriever) { + this.logRetriever = logRetriever; + return this; + } + + public Builder withTesterClient(TesterClient testerClient) { + this.testerClient = testerClient; + return this; + } + + public Builder withFlagSource(FlagSource flagSource) { + this.flagSource = flagSource; + return this; + } + + public Builder withMetric(Metric metric) { + this.metric = metric; + return this; + } + + public ApplicationRepository build() { + return new ApplicationRepository(tenantRepository, + hostProvisioner, + InfraDeployerProvider.empty().getInfraDeployer(), + new ConfigConvergenceChecker(), + httpProxy, + configserverConfig, + orchestrator, + logRetriever, + clock, + testerClient, + metric, + flagSource); + } + + } + public Metric metric() { return metric; } 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 239f103332c..beac308cf77 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 @@ -17,10 +17,8 @@ import com.yahoo.config.provision.Deployment; import com.yahoo.config.provision.HostSpec; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.NetworkPorts; -import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.TenantName; import com.yahoo.container.jdisc.HttpResponse; -import com.yahoo.docproc.jdisc.metric.NullMetric; import com.yahoo.io.IOUtils; import com.yahoo.jdisc.Metric; import com.yahoo.test.ManualClock; @@ -106,7 +104,7 @@ public class ApplicationRepositoryTest { private ApplicationRepository applicationRepository; private TenantRepository tenantRepository; - private SessionHandlerTest.MockProvisioner provisioner; + private SessionHandlerTest.MockProvisioner provisioner; private OrchestratorMock orchestrator; private TimeoutBudget timeoutBudget; private Curator curator; @@ -145,15 +143,15 @@ public class ApplicationRepositoryTest { tenantRepository.addTenant(tenant3); orchestrator = new OrchestratorMock(); provisioner = new SessionHandlerTest.MockProvisioner(); - applicationRepository = new ApplicationRepository(tenantRepository, - provisioner, - orchestrator, - configserverConfig, - new MockLogRetriever(), - clock, - new MockTesterClient(), - new NullMetric(), - flagSource); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(provisioner) + .withConfigserverConfig(configserverConfig) + .withOrchestrator(orchestrator) + .withFlagSource(flagSource) + .withLogRetriever(new MockLogRetriever()) + .withClock(clock) + .build(); timeoutBudget = new TimeoutBudget(clock, Duration.ofSeconds(60)); } @@ -251,7 +249,6 @@ public class ApplicationRepositoryTest { @Test public void getLogs() { - applicationRepository = createApplicationRepository(); deployApp(testAppLogServerWithContainer); HttpResponse response = applicationRepository.getLogs(applicationId(), Optional.empty(), ""); assertEquals(200, response.getStatus()); @@ -259,7 +256,6 @@ public class ApplicationRepositoryTest { @Test public void getLogsForHostname() { - applicationRepository = createApplicationRepository(); ApplicationId applicationId = ApplicationId.from("hosted-vespa", "tenant-host", "default"); deployApp(testAppLogServerWithContainer, new PrepareParams.Builder().applicationId(applicationId).build()); HttpResponse response = applicationRepository.getLogs(applicationId, Optional.of("localhost"), ""); @@ -276,8 +272,12 @@ public class ApplicationRepositoryTest { File filereferenceDir2 = createFilereferenceOnDisk(new File(fileReferencesDir, "baz"), Instant.now()); tenantRepository.addTenant(tenant1); - Provisioner provisioner = new SessionHandlerTest.MockProvisioner(); - applicationRepository = new ApplicationRepository(tenantRepository, provisioner, orchestrator, clock); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(provisioner) + .withOrchestrator(orchestrator) + .withClock(clock) + .build(); timeoutBudget = new TimeoutBudget(clock, Duration.ofSeconds(60)); // TODO: Deploy an app with a bundle or file that will be a file reference, too much missing in test setup to get this working now @@ -451,15 +451,13 @@ public class ApplicationRepositoryTest { @Test public void testMetrics() { MockMetric actual = new MockMetric(); - applicationRepository = new ApplicationRepository(tenantRepository, - provisioner, - orchestrator, - new ConfigserverConfig(new ConfigserverConfig.Builder()), - new MockLogRetriever(), - new ManualClock(), - new MockTesterClient(), - actual, - new InMemoryFlagSource()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(provisioner) + .withOrchestrator(orchestrator) + .withMetric(actual) + .withClock(new ManualClock()) + .build(); deployApp(testAppLogServerWithContainer); Map<String, ?> context = Map.of("applicationId", "test1.testapp.default", "tenantName", "test1", @@ -701,18 +699,6 @@ public class ApplicationRepositoryTest { applicationRepository.deploy(app1, prepareParams()); } - private ApplicationRepository createApplicationRepository() { - return new ApplicationRepository(tenantRepository, - provisioner, - orchestrator, - new ConfigserverConfig(new ConfigserverConfig.Builder()), - new MockLogRetriever(), - clock, - new MockTesterClient(), - new NullMetric(), - new InMemoryFlagSource()); - } - private PrepareResult prepareAndActivate(File application) { return applicationRepository.deploy(application, prepareParams(), false, Instant.now()); } 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 2b7c1c3a6dc..e69fe21dd92 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 @@ -2,6 +2,7 @@ package com.yahoo.vespa.config.server.deploy; import com.yahoo.cloud.config.ConfigserverConfig; +import com.yahoo.component.Version; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.ConfigModelRegistry; import com.yahoo.config.model.NullConfigModelRegistry; @@ -15,25 +16,21 @@ import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.provision.InMemoryProvisioner; import com.yahoo.config.model.test.HostedConfigModelRegistry; import com.yahoo.config.model.test.MockApplicationPackage; +import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Capacity; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.HostFilter; import com.yahoo.config.provision.HostSpec; -import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ProvisionLogger; import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.TenantName; -import com.yahoo.component.Version; import com.yahoo.config.provision.Zone; -import com.yahoo.docproc.jdisc.metric.NullMetric; import com.yahoo.transaction.NestedTransaction; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.MockTesterClient; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.OrchestratorMock; -import com.yahoo.vespa.config.server.http.LogRetriever; 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; @@ -43,7 +40,6 @@ import com.yahoo.vespa.config.server.tenant.Tenant; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.curator.mock.MockCurator; -import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.VespaModelFactory; @@ -127,15 +123,13 @@ public class DeployTester { catch (Exception e) { throw new IllegalArgumentException(e); } - applicationRepository = new ApplicationRepository(tenantRepository, - new ProvisionerAdapter(provisioner), - new OrchestratorMock(), - configserverConfig, - new LogRetriever(), - clock, - new MockTesterClient(), - new NullMetric(), - new InMemoryFlagSource()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new ProvisionerAdapter(provisioner)) + .withConfigserverConfig(configserverConfig) + .withOrchestrator(new OrchestratorMock()) + .withClock(clock) + .build(); } public Tenant tenant() { 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 237a6547057..40aee72e71c 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 @@ -19,7 +19,6 @@ import org.junit.rules.TemporaryFolder; import java.io.File; import java.io.IOException; -import java.time.Clock; import java.util.Collections; import static com.yahoo.jdisc.http.HttpRequest.Method.GET; @@ -58,11 +57,11 @@ public class HttpGetConfigHandlerTest { .build(); TenantRepository tenantRepository = new TenantRepository(componentRegistry); tenantRepository.addTenant(tenant); - ApplicationRepository applicationRepository = - new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + ApplicationRepository applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); handler = new HttpGetConfigHandler(HttpGetConfigHandler.testOnlyContext(), tenantRepository); applicationRepository.deploy(testApp, prepareParams()); } 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 86ea4309839..906716125c2 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 @@ -21,7 +21,6 @@ import org.junit.rules.TemporaryFolder; import java.io.File; import java.io.IOException; -import java.time.Clock; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; @@ -63,11 +62,11 @@ public class HttpListConfigsHandlerTest { .build(); TenantRepository tenantRepository = new TenantRepository(componentRegistry); tenantRepository.addTenant(tenant); - ApplicationRepository applicationRepository = - new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + ApplicationRepository applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); applicationRepository.deploy(testApp, prepareParams()); HttpListConfigsHandler.Context ctx = HttpListConfigsHandler.testOnlyContext(); 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 0db6aea312d..469168cedd4 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 @@ -54,10 +54,12 @@ public class ApplicationContentHandlerTest extends ContentHandlerTestBase { tenantRepository.addTenant(tenantName1); tenantRepository.addTenant(tenantName2); - applicationRepository = new ApplicationRepository(tenantRepository, - new MockProvisioner(), - new OrchestratorMock(), - clock); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .withClock(clock) + .build(); applicationRepository.deploy(testApp, prepareParams(appId1)); applicationRepository.deploy(testApp2, prepareParams(appId2)); 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 9f8eb95a348..f43154242fb 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 @@ -2,7 +2,6 @@ package com.yahoo.vespa.config.server.http.v2; import com.fasterxml.jackson.databind.ObjectMapper; -import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.component.Version; import com.yahoo.config.model.api.ModelFactory; import com.yahoo.config.provision.ApplicationId; @@ -12,7 +11,6 @@ import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; -import com.yahoo.docproc.jdisc.metric.NullMetric; import com.yahoo.jdisc.Response; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.MockLogRetriever; @@ -22,7 +20,6 @@ import com.yahoo.vespa.config.server.application.ConfigConvergenceChecker; import com.yahoo.vespa.config.server.application.HttpProxy; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.deploy.DeployTester; -import com.yahoo.vespa.config.server.deploy.InfraDeployerProvider; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; import com.yahoo.vespa.config.server.http.SessionHandlerTest; @@ -32,7 +29,6 @@ import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.Tenant; import com.yahoo.vespa.config.server.tenant.TenantRepository; -import com.yahoo.vespa.flags.InMemoryFlagSource; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -44,7 +40,6 @@ import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.nio.charset.StandardCharsets; -import java.time.Clock; import java.util.List; import static com.yahoo.config.model.api.container.ContainerServiceType.CLUSTERCONTROLLER_CONTAINER; @@ -70,15 +65,12 @@ public class ApplicationHandlerTest { private final static ApplicationId myTenantApplicationId = ApplicationId.from(mytenantName, ApplicationName.defaultName(), InstanceName.defaultName()); private final static ApplicationId applicationId = ApplicationId.from(TenantName.defaultName(), ApplicationName.defaultName(), InstanceName.defaultName()); private final static MockTesterClient testerClient = new MockTesterClient(); - private final static NullMetric metric = new NullMetric(); - private final static ConfigserverConfig configserverConfig = new ConfigserverConfig(new ConfigserverConfig.Builder()); private static final MockLogRetriever logRetriever = new MockLogRetriever(); private static final Version vespaVersion = Version.fromString("7.8.9"); private TenantRepository tenantRepository; private ApplicationRepository applicationRepository; private SessionHandlerTest.MockProvisioner provisioner; - private final MockStateApiFactory stateApiFactory = new MockStateApiFactory(); private OrchestratorMock orchestrator; @Before @@ -92,15 +84,14 @@ public class ApplicationHandlerTest { tenantRepository.addTenant(mytenantName); provisioner = new SessionHandlerTest.MockProvisioner(); orchestrator = new OrchestratorMock(); - applicationRepository = new ApplicationRepository(tenantRepository, - provisioner, - orchestrator, - configserverConfig, - logRetriever, - Clock.systemUTC(), - testerClient, - metric, - new InMemoryFlagSource()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(provisioner) + .withOrchestrator(orchestrator) + .withClock(componentRegistry.getClock()) + .withTesterClient(testerClient) + .withLogRetriever(logRetriever) + .build(); } @After @@ -201,16 +192,13 @@ public class ApplicationHandlerTest { String host = "foo.yahoo.com"; String url = toUrlPath(applicationId, Zone.defaultZone(), true) + "/clustercontroller/" + host + "/status/v1/clusterName1"; HttpProxy mockHttpProxy = mock(HttpProxy.class); - ApplicationRepository applicationRepository = new ApplicationRepository(tenantRepository, - HostProvisionerProvider.withProvisioner(provisioner), - InfraDeployerProvider.empty(), - new ConfigConvergenceChecker(stateApiFactory), - mockHttpProxy, - configserverConfig, - orchestrator, - testerClient, - metric, - new InMemoryFlagSource()); + ApplicationRepository applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withHostProvisionerProvider(HostProvisionerProvider.empty()) + .withOrchestrator(orchestrator) + .withTesterClient(testerClient) + .withHttpProxy(mockHttpProxy) + .build(); ApplicationHandler mockHandler = createApplicationHandler(applicationRepository); when(mockHttpProxy.get(any(), eq(host), eq(CLUSTERCONTROLLER_CONTAINER.serviceName),eq("clustercontroller-status/v1/clusterName1"))) .thenReturn(new StaticResponse(200, "text/html", "<html>...</html>")); 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 5bf5e1f2229..4d64721f7dd 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 @@ -23,7 +23,6 @@ import org.junit.Test; import java.io.File; import java.io.IOException; -import java.time.Clock; import static com.yahoo.jdisc.http.HttpRequest.Method; import static com.yahoo.vespa.config.server.http.HandlerTest.assertHttpStatusCodeErrorCodeAndMessage; @@ -48,10 +47,11 @@ public class HostHandlerTest { .build(); TenantRepository tenantRepository = new TenantRepository(componentRegistry); tenantRepository.addTenant(mytenant); - applicationRepository = new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); handler = new HostHandler(HostHandler.testOnlyContext(), applicationRepository); } 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 a1ec73c44dc..14d7a0743a5 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 @@ -66,11 +66,11 @@ public class HttpGetConfigHandlerTest { .build(); TenantRepository tenantRepository = new TenantRepository(componentRegistry); tenantRepository.addTenant(tenant); - ApplicationRepository applicationRepository = - new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + ApplicationRepository applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); handler = new HttpGetConfigHandler(HttpGetConfigHandler.testOnlyContext(), tenantRepository); applicationRepository.deploy(testApp, prepareParams()); } 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 64fc1d118c2..785c9977fd2 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 @@ -27,7 +27,6 @@ import org.junit.rules.TemporaryFolder; import java.io.File; import java.io.IOException; -import java.time.Clock; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; @@ -71,11 +70,11 @@ public class HttpListConfigsHandlerTest { .build(); TenantRepository tenantRepository = new TenantRepository(componentRegistry); tenantRepository.addTenant(tenant); - ApplicationRepository applicationRepository = - new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + ApplicationRepository applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); applicationRepository.deploy(testApp, prepareParams()); handler = new HttpListConfigsHandler(HttpListConfigsHandler.testOnlyContext(), tenantRepository, 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 e48752afaf6..135a5ef45c4 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 @@ -74,8 +74,12 @@ public class SessionActiveHandlerTest { .build(); TenantRepository tenantRepository = new TenantRepository(componentRegistry, false); tenantRepository.addTenant(tenantName); - applicationRepository = new ApplicationRepository(tenantRepository, hostProvisioner, - new OrchestratorMock(), componentRegistry.getClock()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(hostProvisioner) + .withOrchestrator(new OrchestratorMock()) + .withClock(componentRegistry.getClock()) + .build(); handler = 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 cda62361256..f0362db3b8a 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 @@ -25,7 +25,6 @@ import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.time.Clock; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertNotNull; @@ -49,10 +48,11 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { tenantRepository = new TenantRepository(componentRegistry, false); tenantRepository.addTenant(tenantName); - ApplicationRepository applicationRepository = new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + ApplicationRepository applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); applicationRepository.deploy(testApp, new PrepareParams.Builder().applicationId(applicationId()).build()); Tenant tenant = applicationRepository.getTenant(applicationId()); sessionId = applicationRepository.getActiveLocalSession(tenant, applicationId()).getSessionId(); @@ -171,10 +171,12 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { private SessionContentHandler createHandler() { return new SessionContentHandler( SessionContentHandler.testOnlyContext(), - new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - componentRegistry.getClock()) + new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .withClock(componentRegistry.getClock()) + .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 c6d241ee534..0f1b1543c83 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 @@ -62,10 +62,12 @@ public class SessionCreateHandlerTest extends SessionHandlerTest { @Before public void setupRepo() { TenantRepository tenantRepository = new TenantRepository(componentRegistry, false); - applicationRepository = new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - componentRegistry.getClock()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .withClock(componentRegistry.getClock()) + .build(); tenantRepository.addTenant(tenant); pathPrefix = "/application/v2/tenant/" + tenant + "/session/"; createdMessage = " for tenant '" + tenant + "' created.\""; 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 2f591ece8c4..297fee94e5b 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 @@ -67,10 +67,12 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { public void setupRepo() { tenantRepository = new TenantRepository(componentRegistry, false); tenantRepository.addTenant(tenant); - applicationRepository = new ApplicationRepository(tenantRepository, - new MockProvisioner(), - new OrchestratorMock(), - clock); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .withClock(clock) + .build(); pathPrefix = "/application/v2/tenant/" + tenant + "/session/"; preparedMessage = " for tenant '" + tenant + "' prepared.\""; tenantMessage = ",\"tenant\":\"" + tenant + "\""; 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 3d143bb8f92..ecab121e547 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 @@ -44,10 +44,11 @@ public class TenantHandlerTest { @Before public void setup() { tenantRepository = new TenantRepository(new TestComponentRegistry.Builder().curator(new MockCurator()).build()); - applicationRepository = new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); handler = new TenantHandler(TenantHandler.testOnlyContext(), applicationRepository); } 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 e32ffeb47e1..9566daf70f4 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 @@ -1,12 +1,9 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.maintenance; -import com.yahoo.cloud.config.ConfigserverConfig; -import com.yahoo.docproc.jdisc.metric.NullMetric; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.MockLogRetriever; -import com.yahoo.vespa.config.server.MockTesterClient; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.SessionHandlerTest; @@ -30,15 +27,14 @@ class MaintainerTester { .clock(clock) .build(); tenantRepository = new TenantRepository(componentRegistry, false); - applicationRepository = new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - new ConfigserverConfig.Builder().build(), - new MockLogRetriever(), - clock, - new MockTesterClient(), - new NullMetric(), - flagSource); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .withLogRetriever(new MockLogRetriever()) + .withFlagSource(flagSource) + .withClock(clock) + .build(); } Curator curator() { return curator; } 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 868846674df..0f087e3f006 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 @@ -34,7 +34,6 @@ import org.junit.After; import org.junit.rules.TemporaryFolder; import java.io.IOException; -import java.time.Clock; import java.time.Duration; import java.time.Instant; import java.util.ArrayList; @@ -91,10 +90,11 @@ public class RpcTester implements AutoCloseable { .build(); tenantRepository = new TenantRepository(componentRegistry, false); tenantRepository.addTenant(tenantName); - applicationRepository = new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); generationCounter = new MemoryGenerationCounter(); createAndStartRpcServer(); assertFalse(hostLivenessTracker.lastRequestFrom(myHostname).isPresent()); 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 fb7b5280b1e..bb87233f979 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 @@ -22,7 +22,6 @@ import org.junit.Test; import org.junit.rules.TemporaryFolder; import java.io.File; -import java.time.Clock; import java.time.Duration; import java.time.Instant; import java.util.function.LongPredicate; @@ -68,10 +67,11 @@ public class SessionRepositoryTest { .build(); tenantRepository = new TenantRepository(globalComponentRegistry, false); tenantRepository.addTenant(SessionRepositoryTest.tenantName); - applicationRepository = new ApplicationRepository(tenantRepository, - new SessionHandlerTest.MockProvisioner(), - new OrchestratorMock(), - Clock.systemUTC()); + applicationRepository = new ApplicationRepository.Builder() + .withTenantRepository(tenantRepository) + .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withOrchestrator(new OrchestratorMock()) + .build(); sessionRepository = tenantRepository.getTenant(tenantName).getSessionRepository(); } |