summaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-07-11 14:51:40 +0200
committerMartin Polden <mpolden@mpolden.no>2023-07-11 14:51:40 +0200
commitebeecbd35845d2ae6422b8196a94b1c1987602c2 (patch)
tree4a6940210b21011f43e20dc375e679f37f720e9d /vespa-osgi-testrunner
parent453da2f45b526bb08dde7376a16fcbe932c95adf (diff)
Use correct certificate for hosted
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r--vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaCliTestRunner.java10
-rw-r--r--vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java76
2 files changed, 63 insertions, 23 deletions
diff --git a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaCliTestRunner.java b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaCliTestRunner.java
index 5816cd54526..9bb0e7ff955 100644
--- a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaCliTestRunner.java
+++ b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/VespaCliTestRunner.java
@@ -6,6 +6,7 @@ import com.yahoo.component.annotation.Inject;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Slime;
import com.yahoo.slime.SlimeUtils;
+import com.yahoo.vespa.defaults.Defaults;
import java.io.BufferedReader;
import java.io.IOException;
@@ -124,11 +125,16 @@ public class VespaCliTestRunner implements TestRunner {
builder.environment().put("VESPA_CLI_HOME", ensureDirectoryForVespaCli("cli-home").toString());
builder.environment().put("VESPA_CLI_CACHE_DIR", ensureDirectoryForVespaCli("cli-cache").toString());
builder.environment().put("VESPA_CLI_ENDPOINTS", toEndpointsConfig(config));
- builder.environment().put("VESPA_CLI_DATA_PLANE_KEY_FILE", artifactsPath.resolve("key").toAbsolutePath().toString());
- builder.environment().put("VESPA_CLI_DATA_PLANE_CERT_FILE", artifactsPath.resolve("cert").toAbsolutePath().toString());
+ Path certRoot = certificateRoot(config);
+ builder.environment().put("VESPA_CLI_DATA_PLANE_KEY_FILE", certRoot.resolve("key").toAbsolutePath().toString());
+ builder.environment().put("VESPA_CLI_DATA_PLANE_CERT_FILE", certRoot.resolve("cert").toAbsolutePath().toString());
return builder;
}
+ private Path certificateRoot(TestConfig config) {
+ return config.system().isPublic() ? artifactsPath : Path.of(Defaults.getDefaults().underVespaHome("var/vespa/sia"));
+ }
+
private static String toSuiteDirectoryName(Suite suite) {
return switch (suite) {
case SYSTEM_TEST -> "system-test";
diff --git a/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java b/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java
index 357106da646..fcd0553566f 100644
--- a/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java
+++ b/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.testrunner;
import ai.vespa.hosted.api.TestConfig;
+import com.yahoo.config.provision.SystemName;
import org.junit.jupiter.api.Test;
import java.io.IOException;
@@ -19,28 +20,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
class VespaCliTestRunnerTest {
- static final TestConfig testConfig = TestConfig.fromJson(("{\n" +
- " \"application\": \"t:a:i\",\n" +
- " \"zone\": \"dev.aws-us-east-1c\",\n" +
- " \"system\": \"publiccd\",\n" +
- " \"isCI\": true,\n" +
- " \"zoneEndpoints\": {\n" +
- " \"dev.aws-us-east-1c\": {\n" +
- " \"default\": \"https://dev.endpoint:443/\"\n" +
- " },\n" +
- " \"prod.aws-us-east-1a\": {\n" +
- " \"default\": \"https://prod.endpoint:443/\"\n" +
- " }\n" +
- " },\n" +
- " \"clusters\": {\n" +
- " \"prod.aws-us-east-1c\": [\n" +
- " \"documents\"\n" +
- " ]\n" +
- " }\n" +
- "}\n").getBytes(StandardCharsets.UTF_8));
-
@Test
- void testSetup() throws IOException {
+ void cloud() throws IOException {
Path temp = Files.createTempDirectory("vespa-cli-test-runner-test-");
temp.toFile().deleteOnExit();
Path tests = Files.createDirectory(temp.resolve("tests"));
@@ -48,6 +29,7 @@ class VespaCliTestRunnerTest {
VespaCliTestRunner runner = new VespaCliTestRunner(artifacts, tests);
Path systemTests = Files.createDirectory(tests.resolve("system-test"));
+ TestConfig testConfig = testConfig(SystemName.PublicCd);
assertNull(runner.testRunProcessBuilder(TestRunner.Suite.STAGING_TEST, testConfig));
ProcessBuilder builder = runner.testRunProcessBuilder(TestRunner.Suite.SYSTEM_TEST, testConfig);
@@ -68,4 +50,56 @@ class VespaCliTestRunnerTest {
builder.environment().get("VESPA_CLI_DATA_PLANE_CERT_FILE"));
}
+ @Test
+ void hosted() throws IOException {
+ Path temp = Files.createTempDirectory("vespa-cli-test-runner-test-");
+ temp.toFile().deleteOnExit();
+ Path tests = Files.createDirectory(temp.resolve("tests"));
+ Path artifacts = Files.createDirectory(temp.resolve("artifacts"));
+ VespaCliTestRunner runner = new VespaCliTestRunner(artifacts, tests);
+
+ Path systemTests = Files.createDirectory(tests.resolve("system-test"));
+ TestConfig testConfig = testConfig(SystemName.cd);
+ assertNull(runner.testRunProcessBuilder(TestRunner.Suite.STAGING_TEST, testConfig));
+
+ ProcessBuilder builder = runner.testRunProcessBuilder(TestRunner.Suite.SYSTEM_TEST, testConfig);
+ assertEquals(List.of("vespa", "test", systemTests.toAbsolutePath().toString(),
+ "--application", "t.a.i",
+ "--zone", "dev.aws-us-east-1c",
+ "--target", "hosted"),
+ builder.command());
+ assertTrue(builder.environment().containsKey("CI"));
+ assertTrue(builder.environment().containsKey("VESPA_CLI_CLOUD_CI"));
+ assertTrue(builder.environment().containsKey("VESPA_CLI_HOME"));
+ assertTrue(builder.environment().containsKey("VESPA_CLI_CACHE_DIR"));
+ assertEquals("{\"endpoints\":[{\"cluster\":\"default\",\"url\":\"https://dev.endpoint:443/\"}]}",
+ builder.environment().get("VESPA_CLI_ENDPOINTS"));
+ assertEquals("/opt/vespa/var/vespa/sia/key",
+ builder.environment().get("VESPA_CLI_DATA_PLANE_KEY_FILE"));
+ assertEquals("/opt/vespa/var/vespa/sia/cert",
+ builder.environment().get("VESPA_CLI_DATA_PLANE_CERT_FILE"));
+ }
+
+ private static TestConfig testConfig(SystemName system) {
+ return TestConfig.fromJson(("{\n" +
+ " \"application\": \"t:a:i\",\n" +
+ " \"zone\": \"dev.aws-us-east-1c\",\n" +
+ " \"system\": \"" + system.value() + "\",\n" +
+ " \"isCI\": true,\n" +
+ " \"zoneEndpoints\": {\n" +
+ " \"dev.aws-us-east-1c\": {\n" +
+ " \"default\": \"https://dev.endpoint:443/\"\n" +
+ " },\n" +
+ " \"prod.aws-us-east-1a\": {\n" +
+ " \"default\": \"https://prod.endpoint:443/\"\n" +
+ " }\n" +
+ " },\n" +
+ " \"clusters\": {\n" +
+ " \"prod.aws-us-east-1c\": [\n" +
+ " \"documents\"\n" +
+ " ]\n" +
+ " }\n" +
+ "}\n").getBytes(StandardCharsets.UTF_8));
+ }
+
}