From 3fffea82508ae721746f79080ee9cdf61a698c52 Mon Sep 17 00:00:00 2001 From: Hongxin Liang Date: Mon, 9 Oct 2023 22:02:59 +0200 Subject: [PATCH] Upgrade testcontainers Signed-off-by: Hongxin Liang --- .../test/java/org/flyte/utils/FlyteSandboxClient.java | 2 +- .../java/org/flyte/utils/FlyteSandboxContainer.java | 9 ++++++--- .../java/org/flyte/utils/FlyteSandboxNetwork.java | 3 +-- .../java/org/flyte/jflyte/aws/S3FileSystemIT.java | 11 +++++++++-- pom.xml | 4 ++-- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxClient.java b/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxClient.java index f614ef596..2acdf083f 100644 --- a/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxClient.java +++ b/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxClient.java @@ -44,7 +44,7 @@ public class FlyteSandboxClient { public static FlyteSandboxClient create() { String version = String.valueOf(System.currentTimeMillis()); - String address = FlyteSandboxContainer.INSTANCE.getContainerIpAddress(); + String address = FlyteSandboxContainer.INSTANCE.getHost(); int port = FlyteSandboxContainer.INSTANCE.getMappedPort(30081); ManagedChannel channel = diff --git a/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxContainer.java b/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxContainer.java index c64c948bb..6d868e0c4 100644 --- a/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxContainer.java +++ b/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxContainer.java @@ -58,6 +58,10 @@ private static void startContainer() { IOUtils.copy(imageInputStream, outputStream); } + // for some reason, when running on Mac, the above copied file is not fully ready after the + // stream being closed; sleeping a little bit could work around that + Thread.sleep(1000); + ExecResult execResult = INSTANCE.execInContainer( "docker", "load", "-i", "integration-tests/target/jflyte.tar.gz"); @@ -106,9 +110,8 @@ public void start() { logger().info("Flyte is ready!"); - String consoleUri = - String.format("http://%s:%d/console", getContainerIpAddress(), getMappedPort(30081)); - String k8sUri = String.format("http://%s:%d", getContainerIpAddress(), getMappedPort(30082)); + String consoleUri = String.format("http://%s:%d/console", getHost(), getMappedPort(30081)); + String k8sUri = String.format("http://%s:%d", getHost(), getMappedPort(30082)); logger().info("Flyte UI is available at " + consoleUri); logger().info("K8s dashboard is available at " + k8sUri); diff --git a/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxNetwork.java b/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxNetwork.java index 4ecb5688f..3b46d9935 100644 --- a/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxNetwork.java +++ b/integration-tests/src/test/java/org/flyte/utils/FlyteSandboxNetwork.java @@ -24,7 +24,6 @@ import org.junit.rules.ExternalResource; import org.testcontainers.DockerClientFactory; import org.testcontainers.containers.Network; -import org.testcontainers.utility.ResourceReaper; // see https://github.com/testcontainers/testcontainers-java/issues/3081 @@ -79,7 +78,7 @@ protected void after() { @Override public void close() { if (initialized.getAndSet(false)) { - ResourceReaper.instance().removeNetworkById(NAME); + DockerClientFactory.instance().client().removeNetworkCmd(NAME).exec(); } } } diff --git a/jflyte-aws/src/test/java/org/flyte/jflyte/aws/S3FileSystemIT.java b/jflyte-aws/src/test/java/org/flyte/jflyte/aws/S3FileSystemIT.java index 2e8300fff..00685f89a 100644 --- a/jflyte-aws/src/test/java/org/flyte/jflyte/aws/S3FileSystemIT.java +++ b/jflyte-aws/src/test/java/org/flyte/jflyte/aws/S3FileSystemIT.java @@ -21,6 +21,9 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.testcontainers.containers.localstack.LocalStackContainer.Service.S3; +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.util.IOUtils; @@ -52,8 +55,12 @@ public class S3FileSystemIT { public void setUp() { s3 = AmazonS3ClientBuilder.standard() - .withEndpointConfiguration(localStack.getEndpointConfiguration(S3)) - .withCredentials(localStack.getDefaultCredentialsProvider()) + .withEndpointConfiguration( + new EndpointConfiguration( + localStack.getEndpointOverride(S3).toString(), localStack.getRegion())) + .withCredentials( + new AWSStaticCredentialsProvider( + new BasicAWSCredentials(localStack.getAccessKey(), localStack.getSecretKey()))) .build(); s3.createBucket("flyteorg"); diff --git a/pom.xml b/pom.xml index 0b6208c8e..aa74b601d 100644 --- a/pom.xml +++ b/pom.xml @@ -374,7 +374,7 @@ net.java.dev.jna jna - 5.8.0 + 5.12.1 com.fasterxml.jackson @@ -400,7 +400,7 @@ org.testcontainers testcontainers-bom - 1.15.3 + 1.19.1 pom import