diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-06-30 10:41:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-30 10:41:50 +0200 |
commit | 41bdf5a8939faec9fe68db3f6fcd81d733123aa4 (patch) | |
tree | fb4e3d0606dbe54f6872ace251ee8911d69748ea /config-model | |
parent | 0a1ae76aa090985823a546bc29e32f61373ad8b5 (diff) | |
parent | 17d282c222b4214920e2f07fe031c6cf05191bb3 (diff) |
Merge pull request #13680 from vespa-engine/mortent/install-testrunner-bundles
install testrunner bundles
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java | 8 | ||||
-rwxr-xr-x | config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java | 44 |
2 files changed, 51 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java index 71d16303573..234387f5a6b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java @@ -124,8 +124,14 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat } private void addTestrunnerComponentsIfTester(DeployState deployState) { - if (deployState.isHosted() && deployState.getProperties().applicationId().instance().isTester()) + if (deployState.isHosted() && deployState.getProperties().applicationId().instance().isTester()) { addPlatformBundle(Paths.get(Defaults.getDefaults().underVespaHome("lib/jars/vespa-testrunner-components-jar-with-dependencies.jar"))); + addPlatformBundle(Paths.get(Defaults.getDefaults().underVespaHome("lib/jars/vespa-osgi-testrunner-jar-with-dependencies.jar"))); + addPlatformBundle(Paths.get(Defaults.getDefaults().underVespaHome("lib/jars/tenant-cd-api-jar-with-dependencies.jar"))); + if(deployState.zone().system().isPublic()) { + addPlatformBundle(Paths.get(Defaults.getDefaults().underVespaHome("lib/jars/cloud-tenant-cd-jar-with-dependencies.jar"))); + } + } } public void setModelEvaluation(ContainerModelEvaluation modelEvaluation) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java index 739ae055ec7..03c05af1145 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java @@ -4,16 +4,19 @@ package com.yahoo.vespa.model.container; import com.yahoo.cloud.config.ClusterInfoConfig; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.cloud.config.RoutingProviderConfig; +import com.yahoo.config.FileReference; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockRoot; +import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; import com.yahoo.config.provisioning.FlavorsConfig; +import com.yahoo.container.BundlesConfig; import com.yahoo.container.handler.ThreadpoolConfig; import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.model.Host; @@ -24,13 +27,19 @@ import com.yahoo.vespa.model.container.component.Component; import com.yahoo.vespa.model.container.docproc.ContainerDocproc; import com.yahoo.vespa.model.container.search.ContainerSearch; import com.yahoo.vespa.model.container.search.searchchain.SearchChains; +import org.hamcrest.CoreMatchers; import org.junit.Test; +import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; +import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThat; /** * @author Simon Thoresen Hult @@ -259,6 +268,41 @@ public class ContainerClusterTest { assertFalse(config.enabled()); } + @Test + public void requireThatBundlesForTesterApplicationAreInstalled() { + List<String> expectedOnpremBundles = + List.of("vespa-testrunner-components-jar-with-dependencies.jar", + "vespa-osgi-testrunner-jar-with-dependencies.jar", + "tenant-cd-api-jar-with-dependencies.jar"); + verifyTesterApplicationInstalledBundles(Zone.defaultZone(), expectedOnpremBundles); + + List<String> expectedPublicBundles = new ArrayList<>(expectedOnpremBundles); + expectedPublicBundles.add("cloud-tenant-cd-jar-with-dependencies.jar"); + Zone publicZone = new Zone(SystemName.PublicCd, Environment.dev, RegionName.defaultName()); + verifyTesterApplicationInstalledBundles(publicZone, expectedPublicBundles); + + } + + private void verifyTesterApplicationInstalledBundles(Zone zone, List<String> expectedBundleNames) { + ApplicationId appId = ApplicationId.from("tenant", "application", "instance-t"); + DeployState state = new DeployState.Builder().properties( + new TestProperties() + .setHostedVespa(true) + .setApplicationId(appId)) + .zone(zone).build(); + MockRoot root = new MockRoot("foo", state); + ApplicationContainerCluster cluster = new ApplicationContainerCluster(root, "container0", "container1", state); + BundlesConfig.Builder bundleBuilder = new BundlesConfig.Builder(); + cluster.getConfig(bundleBuilder); + List<String> installedBundles = bundleBuilder.build().bundle().stream().map(FileReference::value).collect(Collectors.toList()); + + assertEquals(expectedBundleNames.size(), installedBundles.size()); + assertThat(installedBundles, containsInAnyOrder( + expectedBundleNames.stream().map(CoreMatchers::endsWith).collect(Collectors.toList()) + )); + } + + private static void addContainer(DeployLogger deployLogger, ApplicationContainerCluster cluster, String name, String hostName) { ApplicationContainer container = new ApplicationContainer(cluster, name, 0, cluster.isHostedVespa()); container.setHostResource(new HostResource(new Host(null, hostName))); |