diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-10-12 15:43:17 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-10-12 15:44:22 +0200 |
commit | bba97427999caf6e74f3a0c9f40f514ef3ef07dd (patch) | |
tree | 9995e95f3c8dfb37d47f97cb6baa977f88ca7c7d /configserver | |
parent | 0b815761bbffe06b9fdb3ae73a76470a655d5fa6 (diff) |
Reduce number of mock provisioners
Diffstat (limited to 'configserver')
21 files changed, 176 insertions, 289 deletions
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 823172e071e..fcc330235db 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 @@ -1,4 +1,4 @@ -// Copyright 2018 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; import com.yahoo.cloud.config.ConfigserverConfig; @@ -32,7 +32,6 @@ import com.yahoo.vespa.config.protocol.VespaVersion; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.deploy.DeployTester; import com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs; -import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.http.v2.PrepareResult; import com.yahoo.vespa.config.server.session.LocalSession; import com.yahoo.vespa.config.server.session.PrepareParams; @@ -100,7 +99,7 @@ public class ApplicationRepositoryTest { private ApplicationRepository applicationRepository; private TenantRepository tenantRepository; - private SessionHandlerTest.MockProvisioner provisioner; + private MockProvisioner provisioner; private OrchestratorMock orchestrator; private TimeoutBudget timeoutBudget; private Curator curator; @@ -135,7 +134,7 @@ public class ApplicationRepositoryTest { tenantRepository.addTenant(tenant2); tenantRepository.addTenant(tenant3); orchestrator = new OrchestratorMock(); - provisioner = new SessionHandlerTest.MockProvisioner(); + provisioner = new MockProvisioner(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) .withProvisioner(provisioner) @@ -318,9 +317,9 @@ public class ApplicationRepositoryTest { assertNull(applicationRepository.getActiveSession(applicationId())); assertNull(sessionRepository.getLocalSession(sessionId)); assertNull(sessionRepository.getLocalSession(sessionId)); - assertTrue(provisioner.removed); - assertEquals(tenant.getName(), provisioner.lastApplicationId.tenant()); - assertEquals(applicationId(), provisioner.lastApplicationId); + assertTrue(provisioner.removed()); + assertEquals(tenant.getName(), provisioner.lastApplicationId().tenant()); + assertEquals(applicationId(), provisioner.lastApplicationId()); assertFalse(configCurator.exists(sessionNode)); assertFalse(sessionFile.exists()); @@ -340,7 +339,7 @@ public class ApplicationRepositoryTest { // Delete app with id fooId, should not affect original app assertTrue(applicationRepository.delete(fooId)); - assertEquals(fooId, provisioner.lastApplicationId); + assertEquals(fooId, provisioner.lastApplicationId()); assertNotNull(applicationRepository.getActiveSession(applicationId())); assertTrue(applicationRepository.delete(applicationId())); 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 6c144fe2f43..bf54c2b309e 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 @@ -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; import com.yahoo.cloud.config.ConfigserverConfig; @@ -9,7 +9,6 @@ import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.filedistribution.FileServer; import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker; import com.yahoo.vespa.config.server.host.HostRegistries; -import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; @@ -74,7 +73,7 @@ public class InjectedGlobalComponentRegistryTest { defRepo = new StaticConfigDefinitionRepo(); permanentApplicationPackage = new PermanentApplicationPackage(configserverConfig); hostRegistries = new HostRegistries(); - HostProvisionerProvider hostProvisionerProvider = HostProvisionerProvider.withProvisioner(new SessionHandlerTest.MockProvisioner()); + HostProvisionerProvider hostProvisionerProvider = HostProvisionerProvider.withProvisioner(new MockProvisioner()); zone = Zone.defaultZone(); globalComponentRegistry = new InjectedGlobalComponentRegistry(curator, configCurator, metrics, modelFactoryRegistry, sessionPreparer, rpcServer, configserverConfig, 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 new file mode 100644 index 00000000000..36198862c55 --- /dev/null +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/MockProvisioner.java @@ -0,0 +1,108 @@ +// 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; + +import com.yahoo.config.model.api.HostProvisioner; +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.ProvisionLock; +import com.yahoo.config.provision.ProvisionLogger; +import com.yahoo.config.provision.Provisioner; +import com.yahoo.config.provision.exception.LoadBalancerServiceException; +import com.yahoo.transaction.NestedTransaction; + +import java.util.Collection; +import java.util.List; + +/** + * @author mpolden + */ +public class MockProvisioner implements Provisioner { + + private boolean activated = false; + private boolean removed = false; + private boolean restarted = false; + private ApplicationId lastApplicationId; + private Collection<HostSpec> lastHosts; + + private boolean transientFailureOnPrepare = false; + private HostProvisioner hostProvisioner = null; + + public MockProvisioner hostProvisioner(HostProvisioner hostProvisioner) { + this.hostProvisioner = hostProvisioner; + return this; + } + + public MockProvisioner transientFailureOnPrepare() { + transientFailureOnPrepare = true; + return this; + } + + @Override + public List<HostSpec> prepare(ApplicationId applicationId, ClusterSpec cluster, Capacity capacity, ProvisionLogger logger) { + if (hostProvisioner != null) { + return hostProvisioner.prepare(cluster, capacity, logger); + } + if (transientFailureOnPrepare) { + throw new LoadBalancerServiceException("Unable to create load balancer", new Exception("some internal exception")); + } + throw new UnsupportedOperationException("This mock does not support prepare"); + } + + @Override + public void activate(NestedTransaction transaction, ApplicationId application, Collection<HostSpec> hosts) { + activate(transaction, hosts, lock(application)); + } + + @Override + public void activate(NestedTransaction transaction, Collection<HostSpec> hosts, ProvisionLock lock) { + activated = true; + lastApplicationId = lock.application(); + lastHosts = hosts; + } + + @Override + public void remove(NestedTransaction transaction, ApplicationId application) { + remove(transaction, lock(application)); + } + + @Override + public void remove(NestedTransaction transaction, ProvisionLock lock) { + removed = true; + lastApplicationId = lock.application(); + } + + @Override + public void restart(ApplicationId application, HostFilter filter) { + restarted = true; + lastApplicationId = application; + } + + @Override + public ProvisionLock lock(ApplicationId application) { + return new ProvisionLock(application, () -> {}); + } + + public Collection<HostSpec> lastHosts() { + return lastHosts; + } + + public boolean activated() { + return activated; + } + + public boolean removed() { + return removed; + } + + public boolean restarted() { + return restarted; + } + + public ApplicationId lastApplicationId() { + return lastApplicationId; + } + +} 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 0d23cd47437..eb77d6e4081 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 @@ -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.deploy; import com.yahoo.cloud.config.ConfigserverConfig; @@ -18,17 +18,11 @@ 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.ProvisionLock; -import com.yahoo.config.provision.ProvisionLogger; import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; -import com.yahoo.transaction.NestedTransaction; import com.yahoo.vespa.config.server.ApplicationRepository; +import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.OrchestratorMock; @@ -53,7 +47,6 @@ import java.time.Instant; import java.time.LocalDate; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Optional; @@ -189,69 +182,6 @@ public class DeployTester { return new InMemoryProvisioner(true, false, "host0", "host1", "host2", "host3", "host4", "host5"); } - private TestComponentRegistry createComponentRegistry(Curator curator, Metrics metrics, - List<ModelFactory> modelFactories, - ConfigserverConfig configserverConfig, - Clock clock, - Zone zone, - HostProvisioner provisioner) { - TestComponentRegistry.Builder builder = new TestComponentRegistry.Builder(); - - if (configserverConfig.hostedVespa()) - builder.provisioner(new ProvisionerAdapter(provisioner)); - - builder.configServerConfig(configserverConfig) - .curator(curator) - .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories)) - .metrics(metrics) - .zone(zone) - .clock(clock); - return builder.build(); - } - - private static class ProvisionerAdapter implements Provisioner { - - private final HostProvisioner hostProvisioner; - - public ProvisionerAdapter(HostProvisioner hostProvisioner) { - this.hostProvisioner = hostProvisioner; - } - - @Override - public List<HostSpec> prepare(ApplicationId applicationId, ClusterSpec cluster, Capacity capacity, ProvisionLogger logger) { - return hostProvisioner.prepare(cluster, capacity, logger); - } - - @Override - public void activate(NestedTransaction transaction, ApplicationId application, Collection<HostSpec> hosts) { - // noop - } - - @Override - public void activate(NestedTransaction transaction, Collection<HostSpec> hosts, ProvisionLock lock) { - } - - @Override - public void remove(NestedTransaction transaction, ApplicationId application) { - // noop - } - - @Override - public void remove(NestedTransaction transaction, ProvisionLock lock) { - } - - @Override - public void restart(ApplicationId application, HostFilter filter) { - // noop - } - - @Override - public ProvisionLock lock(ApplicationId application) { - return null; - } - - } - private static class FailingModelFactory implements ModelFactory { private final Version version; @@ -347,7 +277,7 @@ public class DeployTester { .configDefinitionsDir(uncheck(() -> Files.createTempDirectory("configdefinitions")).toString()) .fileReferencesDir(uncheck(() -> Files.createTempDirectory("configdefinitions")).toString()))); Provisioner provisioner = Optional.ofNullable(this.provisioner) - .orElseGet(() -> new ProvisionerAdapter(createProvisioner())); + .orElseGet(() -> new MockProvisioner().hostProvisioner(createProvisioner())); List<ModelFactory> modelFactories = Optional.ofNullable(this.modelFactories) .orElseGet(() -> List.of(createModelFactory(clock))); @@ -385,7 +315,7 @@ public class DeployTester { } public Builder hostProvisioner(HostProvisioner hostProvisioner) { - return provisioner(new ProvisionerAdapter(hostProvisioner)); + return provisioner(new MockProvisioner().hostProvisioner(hostProvisioner)); } public Builder configserverConfig(ConfigserverConfig configserverConfig) { 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 ea896469f03..9b6ced7f0f6 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 @@ -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.http; import com.yahoo.cloud.config.ConfigserverConfig; @@ -7,6 +7,7 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.TestConfigDefinitionRepo; import com.yahoo.vespa.config.server.application.OrchestratorMock; @@ -61,7 +62,7 @@ public class HttpGetConfigHandlerTest { tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .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 9cf8f7960a3..203b70c2f85 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 @@ -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.http; import com.yahoo.cloud.config.ConfigserverConfig; @@ -8,6 +8,7 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.TestConfigDefinitionRepo; import com.yahoo.vespa.config.server.application.OrchestratorMock; @@ -66,7 +67,7 @@ public class HttpListConfigsHandlerTest { tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java index 32a9e867684..b845976c2d0 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java @@ -1,24 +1,13 @@ -// 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.http; -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.ProvisionLock; -import com.yahoo.config.provision.ProvisionLogger; -import com.yahoo.config.provision.Provisioner; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; -import com.yahoo.transaction.NestedTransaction; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.Collection; -import java.util.List; import java.util.Map; /** @@ -82,53 +71,4 @@ public class SessionHandlerTest { } } - public static class MockProvisioner implements Provisioner { - - public boolean activated = false; - public boolean removed = false; - public boolean restarted = false; - public ApplicationId lastApplicationId; - public Collection<HostSpec> lastHosts; - - @Override - public List<HostSpec> prepare(ApplicationId applicationId, ClusterSpec cluster, Capacity capacity, ProvisionLogger logger) { - throw new UnsupportedOperationException(); - } - - @Override - public void activate(NestedTransaction transaction, ApplicationId application, Collection<HostSpec> hosts) { - activated = true; - lastApplicationId = application; - lastHosts = hosts; - } - - @Override - public void activate(NestedTransaction transaction, Collection<HostSpec> hosts, ProvisionLock lock) { - - } - - @Override - public void remove(NestedTransaction transaction, ApplicationId application) { - removed = true; - lastApplicationId = application; - } - - @Override - public void remove(NestedTransaction transaction, ProvisionLock lock) { - - } - - @Override - public void restart(ApplicationId application, HostFilter filter) { - restarted = true; - lastApplicationId = application; - } - - @Override - public ProvisionLock lock(ApplicationId application) { - return null; - } - - } - } 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 ab5303b221e..24694e3a585 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 @@ -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.http.v2; import com.yahoo.cloud.config.ConfigserverConfig; @@ -9,6 +9,7 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.ContentHandlerTestBase; 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 7e41adf6ddc..d94afb498a1 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 @@ -15,6 +15,7 @@ import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.jdisc.Response; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.MockLogRetriever; +import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.MockTesterClient; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.ConfigConvergenceChecker; @@ -73,7 +74,7 @@ public class ApplicationHandlerTest { private TenantRepository tenantRepository; private ApplicationRepository applicationRepository; - private SessionHandlerTest.MockProvisioner provisioner; + private MockProvisioner provisioner; private OrchestratorMock orchestrator; @Rule @@ -94,7 +95,7 @@ public class ApplicationHandlerTest { .build(); tenantRepository = new TenantRepository(componentRegistry); tenantRepository.addTenant(mytenantName); - provisioner = new SessionHandlerTest.MockProvisioner(); + provisioner = new MockProvisioner(); orchestrator = new OrchestratorMock(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) @@ -179,10 +180,10 @@ public class ApplicationHandlerTest { @Test public void testRestart() throws Exception { applicationRepository.deploy(testApp, prepareParams(applicationId)); - assertFalse(provisioner.restarted); + assertFalse(provisioner.restarted()); restart(applicationId, Zone.defaultZone()); - assertTrue(provisioner.restarted); - assertEquals(applicationId, provisioner.lastApplicationId); + assertTrue(provisioner.restarted()); + assertEquals(applicationId, provisioner.lastApplicationId()); } @Test 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 ddc880c344e..0b5c5d3d4da 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 @@ -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.http.v2; import com.yahoo.cloud.config.ConfigserverConfig; @@ -11,11 +11,11 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; -import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.TenantRepository; import org.junit.Before; @@ -60,7 +60,7 @@ public class HostHandlerTest { tenantRepository.addTenant(mytenant); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .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 9bb113875b4..f3703c5397d 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 @@ -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.http.v2; import com.yahoo.cloud.config.ConfigserverConfig; @@ -9,6 +9,7 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.TestConfigDefinitionRepo; import com.yahoo.vespa.config.server.application.OrchestratorMock; @@ -25,7 +26,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.Response.Status.BAD_REQUEST; @@ -70,7 +70,7 @@ public class HttpGetConfigHandlerTest { tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withProvisioner(new MockProvisioner()) .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 c1adec3336d..c1c9874c35c 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 @@ -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.http.v2; import com.yahoo.cloud.config.ConfigserverConfig; @@ -11,12 +11,12 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.TestConfigDefinitionRepo; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; -import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.http.v2.HttpListConfigsHandler.ListConfigsResponse; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.TenantRepository; @@ -74,7 +74,7 @@ public class HttpListConfigsHandlerTest { tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .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 732b815156f..0147dde5d95 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 @@ -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.http.v2; import com.yahoo.cloud.config.ConfigserverConfig; @@ -11,12 +11,12 @@ import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.slime.JsonFormat; import com.yahoo.vespa.config.server.ApplicationRepository; +import com.yahoo.vespa.config.server.MockProvisioner; 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.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; -import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.model.TestModelFactory; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.session.LocalSession; @@ -57,7 +57,7 @@ public class SessionActiveHandlerTest { private static final String activatedMessage = " for tenant '" + tenantName + "' activated."; private static final String pathPrefix = "/application/v2/tenant/" + tenantName + "/session/"; - private SessionHandlerTest.MockProvisioner hostProvisioner; + private MockProvisioner provisioner; private TestComponentRegistry componentRegistry; private ApplicationRepository applicationRepository; private SessionActiveHandler handler; @@ -68,7 +68,7 @@ public class SessionActiveHandlerTest { @Before public void setup() throws IOException { VespaModelFactory modelFactory = new TestModelFactory(Version.fromString("7.222.2")); - hostProvisioner = new SessionHandlerTest.MockProvisioner(); + provisioner = new MockProvisioner(); ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder() .configServerDBDir(temporaryFolder.newFolder().getAbsolutePath()) .configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath()) @@ -83,7 +83,7 @@ public class SessionActiveHandlerTest { tenantRepository.addTenant(tenantName); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(hostProvisioner) + .withProvisioner(provisioner) .withOrchestrator(new OrchestratorMock()) .withClock(componentRegistry.getClock()) .withConfigserverConfig(configserverConfig) @@ -165,8 +165,8 @@ public class SessionActiveHandlerTest { "/environment/" + "prod" + "/region/" + "default" + "/instance/" + "default")); - assertTrue(hostProvisioner.activated); - assertThat(hostProvisioner.lastHosts.size(), is(1)); + assertTrue(provisioner.activated()); + assertThat(provisioner.lastHosts().size(), is(1)); } 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 6de85f12765..4f9b656dfb1 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 @@ -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.http.v2; import com.yahoo.cloud.config.ConfigserverConfig; @@ -11,6 +11,7 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.ContentHandlerTestBase; @@ -64,7 +65,7 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withConfigserverConfig(configserverConfig) .build(); @@ -188,7 +189,7 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { SessionContentHandler.testOnlyContext(), new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withProvisioner(new 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 513bf6352e8..84feecec669 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,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.http.v2; import com.yahoo.config.application.api.ApplicationFile; @@ -7,6 +7,7 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.application.CompressedApplicationInputStreamTest; import com.yahoo.vespa.config.server.application.OrchestratorMock; @@ -64,7 +65,7 @@ public class SessionCreateHandlerTest extends SessionHandlerTest { TenantRepository tenantRepository = new TenantRepository(componentRegistry); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .withClock(componentRegistry.getClock()) .build(); 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 f1abddba63c..8860da1dca4 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 @@ -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.http.v2; import com.google.common.util.concurrent.UncheckedTimeoutException; @@ -15,6 +15,7 @@ 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.TestComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.OrchestratorMock; @@ -84,7 +85,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { tenantRepository.addTenant(tenant); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .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 748c43bafeb..3d1d2f95e88 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 @@ -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.http.v2; import static org.hamcrest.CoreMatchers.is; @@ -16,9 +16,9 @@ import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.TenantName; 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.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; -import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.session.PrepareParams; import com.yahoo.vespa.config.server.tenant.Tenant; import com.yahoo.vespa.config.server.tenant.TenantRepository; @@ -60,7 +60,7 @@ public class TenantHandlerTest { applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .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 5c10214be71..1f93f1ce6fe 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,21 +1,13 @@ -// Copyright 2018 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.maintenance; import com.yahoo.cloud.config.ConfigserverConfig; -import com.yahoo.config.model.api.HostProvisioner; import com.yahoo.config.model.provision.InMemoryProvisioner; -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.ProvisionLock; -import com.yahoo.config.provision.ProvisionLogger; import com.yahoo.config.provision.Provisioner; -import com.yahoo.transaction.NestedTransaction; 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.MockProvisioner; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.deploy.DeployTester; @@ -29,7 +21,6 @@ import org.junit.rules.TemporaryFolder; import java.io.File; import java.io.IOException; import java.time.Clock; -import java.util.Collection; import java.util.List; class MaintainerTester { @@ -41,7 +32,7 @@ class MaintainerTester { MaintainerTester(Clock clock, TemporaryFolder temporaryFolder) throws IOException { this.curator = new MockCurator(); InMemoryProvisioner hostProvisioner = new InMemoryProvisioner(true, false, "host0", "host1", "host2", "host3", "host4"); - ProvisionerAdapter provisioner = new ProvisionerAdapter(hostProvisioner); + Provisioner provisioner = new MockProvisioner().hostProvisioner(hostProvisioner); ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder() .hostedVespa(true) .configServerDBDir(temporaryFolder.newFolder().getAbsolutePath()) @@ -76,50 +67,4 @@ class MaintainerTester { ApplicationRepository applicationRepository() { return applicationRepository;} - - private static class ProvisionerAdapter implements Provisioner { - - private final HostProvisioner hostProvisioner; - - public ProvisionerAdapter(HostProvisioner hostProvisioner) { - this.hostProvisioner = hostProvisioner; - } - - @Override - public List<HostSpec> prepare(ApplicationId applicationId, ClusterSpec cluster, Capacity capacity, ProvisionLogger logger) { - return hostProvisioner.prepare(cluster, capacity, logger); - } - - @Override - public void activate(NestedTransaction transaction, ApplicationId application, Collection<HostSpec> hosts) { - // noop - } - - @Override - public void activate(NestedTransaction transaction, Collection<HostSpec> hosts, ProvisionLock lock) { - - } - - @Override - public void remove(NestedTransaction transaction, ApplicationId application) { - // noop - } - - @Override - public void remove(NestedTransaction transaction, ProvisionLock lock) { - - } - - @Override - public void restart(ApplicationId application, HostFilter filter) { - // noop - } - - @Override - public ProvisionLock lock(ApplicationId application) { - return null; - } - - } - } 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 47217491e3c..2b2ed13fcfe 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 @@ -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.rpc; import com.yahoo.cloud.config.ConfigserverConfig; @@ -15,6 +15,7 @@ import com.yahoo.test.ManualClock; import com.yahoo.vespa.config.GenerationCounter; 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; @@ -24,7 +25,6 @@ import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.filedistribution.FileServer; import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker; import com.yahoo.vespa.config.server.host.HostRegistries; -import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.rpc.security.NoopRpcAuthorizer; import com.yahoo.vespa.config.server.tenant.Tenant; @@ -93,7 +93,7 @@ public class RpcTester implements AutoCloseable { tenantRepository.addTenant(tenantName); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .build(); generationCounter = new MemoryGenerationCounter(); 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 43504988d67..2a63e8cf6c2 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 @@ -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.session; import com.yahoo.cloud.config.ConfigserverConfig; @@ -11,15 +11,8 @@ import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.config.model.application.provider.FilesApplicationPackage; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ApplicationName; -import com.yahoo.config.provision.Capacity; import com.yahoo.config.provision.CertificateNotReadyException; -import com.yahoo.config.provision.ClusterSpec; -import com.yahoo.config.provision.HostFilter; -import com.yahoo.config.provision.HostSpec; import com.yahoo.config.provision.InstanceName; -import com.yahoo.config.provision.ProvisionLock; -import com.yahoo.config.provision.ProvisionLogger; -import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.exception.LoadBalancerServiceException; import com.yahoo.io.IOUtils; @@ -29,7 +22,6 @@ import com.yahoo.security.KeyUtils; import com.yahoo.security.SignatureAlgorithm; import com.yahoo.security.X509CertificateBuilder; import com.yahoo.security.X509CertificateUtils; -import com.yahoo.transaction.NestedTransaction; import com.yahoo.vespa.config.server.MockSecretStore; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudgetTest; @@ -40,6 +32,7 @@ import com.yahoo.vespa.config.server.http.InvalidApplicationException; 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.MockProvisioner; import com.yahoo.vespa.config.server.tenant.ContainerEndpointsCache; import com.yahoo.vespa.config.server.tenant.EndpointCertificateMetadataStore; import com.yahoo.vespa.config.server.tenant.EndpointCertificateRetriever; @@ -62,7 +55,6 @@ import java.security.KeyPair; import java.security.cert.X509Certificate; import java.time.Instant; import java.time.temporal.ChronoUnit; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -355,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 FailWithTransientExceptionProvisioner())); + preparer = createPreparer(HostProvisionerProvider.withProvisioner(new MockProvisioner().transientFailureOnPrepare())); var params = new PrepareParams.Builder().applicationId(applicationId("test")).build(); prepare(new File("src/test/resources/deploy/hosted-app"), params); } @@ -412,37 +404,4 @@ public class SessionPreparerTest { return TenantRepository.getSessionsPath(applicationId().tenant()).append(String.valueOf(sessionId)); } - private static class FailWithTransientExceptionProvisioner implements Provisioner { - - @Override - public List<HostSpec> prepare(ApplicationId applicationId, ClusterSpec cluster, Capacity capacity, ProvisionLogger logger) { - throw new LoadBalancerServiceException("Unable to create load balancer", new Exception("some internal exception")); - } - - @Override - public void activate(NestedTransaction transaction, ApplicationId application, Collection<HostSpec> hosts) { } - - @Override - public void activate(NestedTransaction transaction, Collection<HostSpec> hosts, ProvisionLock lock) { - - } - - @Override - public void remove(NestedTransaction transaction, ApplicationId application) { } - - @Override - public void remove(NestedTransaction transaction, ProvisionLock lock) { - - } - - @Override - public void restart(ApplicationId application, HostFilter filter) { } - - @Override - public ProvisionLock lock(ApplicationId application) { - return null; - } - - } - } 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 aeff4029440..a4a9579a21d 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 @@ -16,11 +16,11 @@ import com.yahoo.config.provision.TenantName; import com.yahoo.text.Utf8; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.GlobalComponentRegistry; +import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.application.OrchestratorMock; import com.yahoo.vespa.config.server.http.InvalidApplicationException; -import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; @@ -94,7 +94,7 @@ public class SessionRepositoryTest { tenantRepository.addTenant(SessionRepositoryTest.tenantName); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) - .withProvisioner(new SessionHandlerTest.MockProvisioner()) + .withProvisioner(new MockProvisioner()) .withOrchestrator(new OrchestratorMock()) .build(); sessionRepository = tenantRepository.getTenant(tenantName).getSessionRepository(); |