diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2019-08-14 15:57:07 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2019-08-14 15:57:07 +0200 |
commit | 6f0d45b07ffb0210aaaa7ea1d2098d58323338d7 (patch) | |
tree | 0824383665f568cc35e8fc830c4fe653ad2c12ce | |
parent | d23d8e91bb6a34c3327c32746c3466f241e18542 (diff) |
Set test credentials root only when it has credentials
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 |