diff options
3 files changed, 17 insertions, 100 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java index 268c5d1be22..19e83da6be7 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java @@ -52,9 +52,7 @@ public final class ClusterSpec { @Override public String toString() { - return type + " " + id + - (groupId.isPresent() ? " " + groupId.get() : "") + - (dockerImage.isPresent() ? " " + dockerImage.get() : ""); + return type + " " + id + (groupId.isPresent() ? " " + groupId.get() : ""); } @Override 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 8b4b7237662..bb7560e3740 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,7 +1,5 @@ package com.yahoo.vespa.config.server.deploy; -import com.google.common.io.Files; -import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.NullConfigModelRegistry; import com.yahoo.config.model.api.HostProvisioner; @@ -19,7 +17,6 @@ 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.ProvisionInfo; import com.yahoo.config.provision.ProvisionLogger; import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.Version; @@ -43,6 +40,7 @@ import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.VespaModelFactory; import java.io.File; +import java.io.IOException; import java.time.Clock; import java.time.Duration; import java.time.Instant; @@ -70,24 +68,17 @@ public class DeployTester { } public DeployTester(String appPath, List<ModelFactory> modelFactories) { - this(appPath, modelFactories, new ConfigserverConfig(new ConfigserverConfig.Builder() - .configServerDBDir(Files.createTempDir() - .getAbsolutePath()))); - } - - public DeployTester(String appPath, ConfigserverConfig configserverConfig) { - this(appPath, - Collections.singletonList(createDefaultModelFactory(Clock.systemUTC())), - configserverConfig); - } - - public DeployTester(String appPath, List<ModelFactory> modelFactories, ConfigserverConfig configserverConfig) { - Metrics metrics = Metrics.createTestMetrics(); - this.curator = new MockCurator(); - TestComponentRegistry componentRegistry = createComponentRegistry(curator, metrics, modelFactories, configserverConfig); try { + this.curator = new MockCurator(); this.testApp = new File(appPath); - this.tenants = new Tenants(componentRegistry, metrics); + ModelFactoryRegistry modelFactoryRegistry = new ModelFactoryRegistry(modelFactories); + final Metrics metrics = Metrics.createTestMetrics(); + this.tenants = new Tenants(new TestComponentRegistry.Builder() + .curator(curator) + .modelFactoryRegistry(modelFactoryRegistry) + .metrics(metrics) + .build(), + metrics); } catch (Exception e) { throw new IllegalArgumentException(e); @@ -105,23 +96,12 @@ public class DeployTester { /** * Do the initial "deploy" with the existing API-less code as the deploy API doesn't support first deploys yet. */ - public ApplicationId deployApp(String appName){ - return deployApp(appName, Optional.empty()); - } - - /** - * Do the initial "deploy" with the existing API-less code as the deploy API doesn't support first deploys yet. - */ - public ApplicationId deployApp(String appName, Optional<String> dockerVespaImageVersion) { + public ApplicationId deployApp(String appName) { final Tenant tenant = tenant(); LocalSession session = tenant.getSessionFactory().createSession(testApp, appName, new TimeoutBudget(Clock.systemUTC(), Duration.ofSeconds(60))); ApplicationId id = ApplicationId.from(tenant.getName(), ApplicationName.from(appName), InstanceName.defaultName()); - PrepareParams.Builder paramsBuilder = new PrepareParams.Builder() - .applicationId(id); - if (dockerVespaImageVersion.isPresent()) - paramsBuilder.dockerVespaImageVersion(dockerVespaImageVersion.get()); session.prepare(new SilentDeployLogger(), - paramsBuilder.build(), + new PrepareParams.Builder().applicationId(id).build(), Optional.empty(), tenant.getPath()); session.createActivateTransaction().commit(); @@ -129,14 +109,7 @@ public class DeployTester { this.id = id; return id; } - - public ProvisionInfo getProvisionInfoFromDeployedApp(ApplicationId applicationId) { - final Tenant tenant = tenant(); - LocalSession session = tenant.getLocalSessionRepo().getSession(tenant.getApplicationRepo() - .getSessionIdForApplication(applicationId)); - return session.getProvisionInfo(); - } - + public ApplicationId applicationId() { return id; } public Optional<com.yahoo.config.provision.Deployment> redeployFromLocalActive() { @@ -154,23 +127,7 @@ public class DeployTester { } private Provisioner createHostProvisioner() { - return new ProvisionerAdapter(new InMemoryProvisioner(true, "host0", "host1", "host2", "host3", "host4", "host5")); - } - - private TestComponentRegistry createComponentRegistry(Curator curator, Metrics metrics, - List<ModelFactory> modelFactories, - ConfigserverConfig configserverConfig) { - TestComponentRegistry.Builder builder = new TestComponentRegistry.Builder(); - - if (configserverConfig.hostedVespa()) { - builder.provisioner(createHostProvisioner()); - } - - builder.configServerConfig(configserverConfig) - .curator(curator) - .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories)) - .metrics(metrics); - return builder.build(); + return new ProvisionerAdapter(new InMemoryProvisioner(true, "host0", "host1", "host2")); } private static class ProvisionerAdapter implements Provisioner { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java index 1578bacf429..25efbc77a17 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java @@ -1,13 +1,9 @@ // Copyright 2016 Yahoo Inc. 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.google.common.io.Files; -import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.api.ModelFactory; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Version; import com.yahoo.test.ManualClock; -import org.junit.Ignore; import org.junit.Test; import java.io.IOException; @@ -16,7 +12,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -24,21 +19,10 @@ import static org.junit.Assert.fail; * @author bratseth */ public class HostedDeployTest { - private static final String dockerRegistry = "foo.com:4443"; - private static final String dockerVespaBaseImage = "/vespa/ci"; - private static final ConfigserverConfig config = new ConfigserverConfig(new ConfigserverConfig.Builder() - .configServerDBDir(Files.createTempDir() - .getAbsolutePath()) - .dockerRegistry(dockerRegistry) - .dockerVespaBaseImage(dockerVespaBaseImage) - .configServerDBDir(Files.createTempDir() - .getAbsolutePath()) - .hostedVespa(true) - .multitenant(true)); @Test public void testRedeploy() throws InterruptedException, IOException { - DeployTester tester = new DeployTester("src/test/apps/hosted/", config); + DeployTester tester = new DeployTester("src/test/apps/hosted/"); tester.deployApp("myApp"); Optional<com.yahoo.config.provision.Deployment> deployment = tester.redeployFromLocalActive(); @@ -54,7 +38,7 @@ public class HostedDeployTest { List<ModelFactory> modelFactories = new ArrayList<>(); modelFactories.add(DeployTester.createDefaultModelFactory(clock)); modelFactories.add(DeployTester.createFailingModelFactory(Version.fromIntValues(1, 0, 0))); // older than default - DeployTester tester = new DeployTester("src/test/apps/validationOverride/", modelFactories, config); + DeployTester tester = new DeployTester("src/test/apps/validationOverride/", modelFactories); tester.deployApp("myApp"); // Redeployment from local active works @@ -87,26 +71,4 @@ public class HostedDeployTest { } } - @Test - @Ignore //WIP - public void testDeployWithDockerImage() throws InterruptedException, IOException { - final String vespaVersion = "6.51.1"; - DeployTester tester = new DeployTester("src/test/apps/hosted/", config); - ApplicationId applicationId = tester.deployApp("myApp", Optional.of(vespaVersion)); - assertProvisionInfo(vespaVersion, tester, applicationId); - - System.out.println("Redeploy"); - Optional<com.yahoo.config.provision.Deployment> deployment = tester.redeployFromLocalActive(); - assertTrue(deployment.isPresent()); - deployment.get().prepare(); - deployment.get().activate(); - //assertProvisionInfo(vespaVersion, tester, applicationId); - } - - private void assertProvisionInfo(String vespaVersion, DeployTester tester, ApplicationId applicationId) { - tester.getProvisionInfoFromDeployedApp(applicationId).getHosts().stream() - .forEach(h -> assertEquals(dockerRegistry + dockerVespaBaseImage + ":" + vespaVersion, - h.membership().get().cluster().dockerImage().get())); - } - } |