aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-08-14 15:57:07 +0200
committerJon Marius Venstad <venstad@gmail.com>2019-08-14 15:57:07 +0200
commit6f0d45b07ffb0210aaaa7ea1d2098d58323338d7 (patch)
tree0824383665f568cc35e8fc830c4fe653ad2c12ce
parentd23d8e91bb6a34c3327c32746c3466f241e18542 (diff)
Set test credentials root only when it has credentials
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java7
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java4
-rw-r--r--controller-server/src/test/resources/test_runner_services.xml-cd1
-rw-r--r--vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java52
-rw-r--r--vespa-testrunner-components/src/main/resources/configdefinitions/test-runner.def5
5 files changed, 40 insertions, 29 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
index 7ee834844af..ee559cef6d9 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
@@ -588,7 +588,9 @@ public class InternalStepRunner implements StepRunner {
ApplicationVersion version = controller.jobController().run(id).get().versions().targetApplication();
DeploymentSpec spec = controller.applications().require(id.application()).deploymentSpec();
- byte[] servicesXml = servicesXml(controller.zoneRegistry().accessControlDomain(), testerFlavorFor(id, spec));
+ byte[] servicesXml = servicesXml(controller.zoneRegistry().accessControlDomain(),
+ spec.athenzDomain().isPresent(),
+ testerFlavorFor(id, spec));
byte[] testPackage = controller.applications().applicationStore().get(id.tester(), version);
ZoneId zone = id.type().zone(controller.system());
@@ -620,7 +622,7 @@ public class InternalStepRunner implements StepRunner {
}
/** Returns the generated services.xml content for the tester application. */
- static byte[] servicesXml(AthenzDomain domain, Optional<String> testerFlavor) {
+ static byte[] servicesXml(AthenzDomain domain, boolean useAthenzCredentials, Optional<String> testerFlavor) {
String flavor = testerFlavor.orElse("d-1-4-50");
int memoryGb = Integer.parseInt(flavor.split("-")[2]); // Memory available in tester container.
int jdiscMemoryPercentage = (int) Math.ceil(200.0 / memoryGb); // 2Gb memory for tester application (excessive?).
@@ -635,6 +637,7 @@ public class InternalStepRunner implements StepRunner {
" <config name=\"com.yahoo.vespa.hosted.testrunner.test-runner\">\n" +
" <artifactsPath>artifacts</artifactsPath>\n" +
" <surefireMemoryMb>" + testMemoryMb + "</surefireMemoryMb>\n" +
+ " <useAthenzCredentials>" + useAthenzCredentials + "</useAthenzCredentials>\n" +
" </config>\n" +
" </component>\n" +
"\n" +
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java
index f8157680cfd..f5366ae3862 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java
@@ -399,7 +399,9 @@ public class InternalStepRunnerTest {
@Test
public void generates_correct_services_xml_test() {
- assertFile("test_runner_services.xml-cd", new String(InternalStepRunner.servicesXml(AthenzDomain.from("vespa.vespa.cd"), Optional.of("d-2-12-75"))));
+ assertFile("test_runner_services.xml-cd", new String(InternalStepRunner.servicesXml(AthenzDomain.from("vespa.vespa.cd"),
+ true,
+ Optional.of("d-2-12-75"))));
}
private void assertFile(String resourceName, String actualContent) {
diff --git a/controller-server/src/test/resources/test_runner_services.xml-cd b/controller-server/src/test/resources/test_runner_services.xml-cd
index bd49f3be55a..f53262fe55f 100644
--- a/controller-server/src/test/resources/test_runner_services.xml-cd
+++ b/controller-server/src/test/resources/test_runner_services.xml-cd
@@ -6,6 +6,7 @@
<config name="com.yahoo.vespa.hosted.testrunner.test-runner">
<artifactsPath>artifacts</artifactsPath>
<surefireMemoryMb>5120</surefireMemoryMb>
+ <useAthenzCredentials>true</useAthenzCredentials>
</config>
</component>
diff --git a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java
index fb5dccc551d..a14c1e2a231 100644
--- a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java
+++ b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java
@@ -16,6 +16,7 @@ import java.io.UncheckedIOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.SortedMap;
@@ -68,30 +69,7 @@ public class TestRunner {
vespaHome.resolve("logs/vespa/maven.log"),
vespaHome.resolve("tmp/config.json"),
vespaHome.resolve("tmp/settings.xml"),
- profile -> { // Anything to make this testable! >_<
- String[] command = new String[]{
- "mvn",
- "test",
-
- "--batch-mode", // Run in non-interactive (batch) mode (disables output color)
- "--show-version", // Display version information WITHOUT stopping build
- "--settings", // Need to override repository settings in ymaven config >_<
- vespaHome.resolve("tmp/settings.xml").toString(),
-
- // Disable maven download progress indication
- "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn",
- "-Dstyle.color=always", // Enable ANSI color codes again
- "-DfailIfNoTests=" + profile.failIfNoTests(),
- "-Dvespa.test.config=" + vespaHome.resolve("tmp/config.json"),
- "-Dvespa.test.credentials.root=" + Defaults.getDefaults().vespaHome() + "/var/vespa/sia",
- String.format("-DargLine=-Xms%1$dm -Xmx%1$dm", config.surefireMemoryMb())
- };
- ProcessBuilder builder = new ProcessBuilder(command);
- builder.environment().merge("MAVEN_OPTS", " -Djansi.force=true", String::concat);
- builder.directory(vespaHome.resolve("tmp/test").toFile());
- builder.redirectErrorStream(true);
- return builder;
- });
+ profile -> mavenProcessFrom(profile, config));
}
TestRunner(Path artifactsPath, Path testPath, Path logFile, Path configFile, Path settingsFile, Function<TestProfile, ProcessBuilder> testBuilder) {
@@ -103,6 +81,32 @@ public class TestRunner {
this.testBuilder = testBuilder;
}
+ static ProcessBuilder mavenProcessFrom(TestProfile profile, TestRunnerConfig config) {
+ List<String> command = new ArrayList<>();
+ command.add("mvn");
+ command.add("test");
+
+ command.add("--batch-mode"); // Run in non-interactive (batch) mode (disables output color)
+ command.add("--show-version"); // Display version information WITHOUT stopping build
+ command.add("--settings"); // Need to override repository settings in ymaven config >_<
+ command.add(vespaHome.resolve("tmp/settings.xml").toString());
+
+ // Disable maven download progress indication
+ command.add("-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn");
+ command.add("-Dstyle.color=always"); // Enable ANSI color codes again
+ command.add("-DfailIfNoTests=" + profile.failIfNoTests());
+ command.add("-Dvespa.test.config=" + vespaHome.resolve("tmp/config.json"));
+ if (config.useAthenzCredentials())
+ command.add("-Dvespa.test.credentials.root=" + Defaults.getDefaults().vespaHome() + "/var/vespa/sia");
+ command.add(String.format("-DargLine=-Xms%1$dm -Xmx%1$dm", config.surefireMemoryMb()));
+
+ ProcessBuilder builder = new ProcessBuilder(command);
+ builder.environment().merge("MAVEN_OPTS", " -Djansi.force=true", String::concat);
+ builder.directory(vespaHome.resolve("tmp/test").toFile());
+ builder.redirectErrorStream(true);
+ return builder;
+ }
+
public synchronized void test(TestProfile testProfile, byte[] testConfig) {
if (status == Status.RUNNING)
throw new IllegalArgumentException("Tests are already running; should not receive this request now.");
diff --git a/vespa-testrunner-components/src/main/resources/configdefinitions/test-runner.def b/vespa-testrunner-components/src/main/resources/configdefinitions/test-runner.def
index a2d0eacd9be..91a8a2057e7 100644
--- a/vespa-testrunner-components/src/main/resources/configdefinitions/test-runner.def
+++ b/vespa-testrunner-components/src/main/resources/configdefinitions/test-runner.def
@@ -1,4 +1,5 @@
package=com.yahoo.vespa.hosted.testrunner
-artifactsPath path
-surefireMemoryMb int
+artifactsPath path
+surefireMemoryMb int
+useAthenzCredentials bool