diff --git a/tasks/terraform/pom.xml b/tasks/terraform/pom.xml
index 9b8a66c6..66af7b48 100644
--- a/tasks/terraform/pom.xml
+++ b/tasks/terraform/pom.xml
@@ -94,12 +94,6 @@
wiremock-jre8
test
-
- com.squareup.okhttp
- okhttp
- 2.7.5
- test
-
com.walmartlabs.concord.runtime.v2
concord-runner-v2
diff --git a/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/AbstractTerraformTest.java b/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/AbstractTerraformTest.java
index 57c3b333..8d8246fd 100644
--- a/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/AbstractTerraformTest.java
+++ b/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/AbstractTerraformTest.java
@@ -26,19 +26,18 @@
import com.github.tomakehurst.wiremock.http.HttpHeader;
import com.github.tomakehurst.wiremock.http.RequestMethod;
import com.github.tomakehurst.wiremock.junit5.WireMockExtension;
-import com.squareup.okhttp.Call;
-import com.squareup.okhttp.OkHttpClient;
-import com.squareup.okhttp.Request;
-import com.squareup.okhttp.Response;
-import com.walmartlabs.concord.common.IOUtils;
import com.walmartlabs.concord.plugins.terraform.backend.BackendFactoryV1;
import com.walmartlabs.concord.plugins.terraform.docker.DockerService;
import com.walmartlabs.concord.sdk.*;
import org.junit.jupiter.api.extension.RegisterExtension;
+import org.junit.jupiter.api.io.TempDir;
import java.io.*;
import java.lang.reflect.Field;
import java.net.URI;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -60,6 +59,7 @@ public abstract class AbstractTerraformTest {
private String basedir;
private AWSCredentials awsCredentials;
+ @TempDir
protected Path workDir;
protected Path dstDir;
private Path testFile;
@@ -67,7 +67,7 @@ public abstract class AbstractTerraformTest {
protected LockService lockService;
protected ObjectStorage objectStorage;
protected BackendFactoryV1 backendManager;
- protected OKHttpDownloadManager dependencyManager;
+ protected HttpClientDownloadManager dependencyManager;
protected DockerService dockerService;
@RegisterExtension
@@ -100,7 +100,7 @@ public void abstractSetup() throws Exception {
Files.copy(testFile, dstDir.resolve("main.tf"));
lockService = mock(LockService.class);
- dependencyManager = new OKHttpDownloadManager("terraform");
+ dependencyManager = new HttpClientDownloadManager("terraform");
dockerService = new DockerService(workDir, Collections.emptyList());
}
@@ -297,14 +297,8 @@ public Object put(Object key, Object value) {
//
private Path workDir() throws Exception {
- String concordTmpDir = System.getenv(CONCORD_TMP_DIR_KEY);
- if (concordTmpDir == null) {
- // Grab the old environment and add the CONCORD_TMP_DIR value to it and reset it
- Map newEnvironment = new HashMap<>(System.getenv());
- newEnvironment.put(CONCORD_TMP_DIR_KEY, CONCORD_TMP_DIR_VALUE);
- setNewEnvironment(newEnvironment);
- }
- return IOUtils.createTempDir("test");
+
+ return Files.createDirectories(workDir.resolve("test"));
}
private Path terraformTestFile() {
@@ -361,11 +355,11 @@ private static void setNewEnvironment(Map newEnvironment) throws
}
}
- static class OKHttpDownloadManager implements DependencyManager, com.walmartlabs.concord.runtime.v2.sdk.DependencyManager {
+ protected static class HttpClientDownloadManager implements DependencyManager, com.walmartlabs.concord.runtime.v2.sdk.DependencyManager {
private final Path toolDir;
- public OKHttpDownloadManager(String tool) {
+ public HttpClientDownloadManager(String tool) {
this.toolDir = Paths.get(System.getProperty("user.home"), ".m2/tools/", tool);
if (Files.exists(toolDir)) {
@@ -395,11 +389,17 @@ public Path resolve(URI uri) throws IOException {
String fileName = urlString.substring(urlString.lastIndexOf('/') + 1);
Path target = toolDir.resolve(fileName);
if (!Files.exists(target)) {
- OkHttpClient client = new OkHttpClient();
- Request request = new Request.Builder().url(urlString).build();
- Call call = client.newCall(request);
- Response response = call.execute();
- download(response.body().byteStream(), target.toFile());
+ HttpClient client = HttpClient.newHttpClient();
+ HttpRequest req = HttpRequest.newBuilder(URI.create(urlString))
+ .GET()
+ .build();
+
+ try {
+ var response = client.send(req, HttpResponse.BodyHandlers.ofInputStream());
+ download(response.body(), target.toFile());
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
}
return target;
}
diff --git a/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/TerraformTaskIT.java b/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/TerraformTaskIT.java
index 099850ba..16777269 100644
--- a/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/TerraformTaskIT.java
+++ b/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/TerraformTaskIT.java
@@ -51,12 +51,12 @@ public class TerraformTaskIT {
private static final String CURRENT_VERSION = getCurrentVersion();
@Test
- public void testWithRuntimeV1() throws Exception {
+ void testWithRuntimeV1() throws Exception {
test("runtimeV1/concord.yml");
}
@Test
- public void testWithRuntimeV2() throws Exception {
+ void testWithRuntimeV2() throws Exception {
test("runtimeV2/concord.yml");
}
diff --git a/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/TerraformTaskV2Test.java b/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/TerraformTaskV2Test.java
index a3d228fd..4dd22b03 100644
--- a/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/TerraformTaskV2Test.java
+++ b/tasks/terraform/src/test/java/com/walmartlabs/concord/plugins/terraform/TerraformTaskV2Test.java
@@ -20,7 +20,6 @@
* =====
*/
-import com.squareup.okhttp.OkHttpClient;
import com.walmartlabs.concord.ApiClient;
import com.walmartlabs.concord.client.ApiClientConfiguration;
import com.walmartlabs.concord.client.ApiClientFactory;
@@ -36,7 +35,6 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
-import java.time.Duration;
import java.util.Collections;
import java.util.Map;
@@ -71,7 +69,7 @@
// TODO: split test apart to prepare for testing OCI/GCP
//
@Disabled
-public class TerraformTaskV2Test extends AbstractTerraformTest {
+class TerraformTaskV2Test extends AbstractTerraformTest {
private ApiClient apiClient;
private SecretService secretService;
private final LockService lockService = mock(LockService.class);
@@ -96,7 +94,7 @@ public void setup() throws Exception {
}
@Test
- public void test() throws Exception {
+ void test() throws Exception {
Map args = baseArguments(workDir, dstDir, Action.PLAN.name());
args.put(TaskConstants.VARS_FILES, varFiles());
args.put(TaskConstants.EXTRA_VARS_KEY, extraVars());
@@ -235,7 +233,7 @@ private static SecretService createSecretService(Path workDir) throws Exception
ApiClientFactory getApiClientFactory() {
return cfg -> {
- ApiClient apiClient = new ConcordApiClient(cfg.baseUrl(), new OkHttpClient());
+ ApiClient apiClient = new ConcordApiClient(cfg.baseUrl());
apiClient.setReadTimeout(60000);
apiClient.setConnectTimeout(10000);
apiClient.setWriteTimeout(60000);