From e64de9ea55ec52a3e7f6bc51c9adce9bb2c716e6 Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Wed, 17 Dec 2025 20:11:29 -0800 Subject: [PATCH] Test configuration of cloud storage region --- src/org/labkey/test/TestProperties.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/org/labkey/test/TestProperties.java b/src/org/labkey/test/TestProperties.java index 007619f3d7..ee672a4c5d 100644 --- a/src/org/labkey/test/TestProperties.java +++ b/src/org/labkey/test/TestProperties.java @@ -18,7 +18,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.SystemUtils; import org.labkey.serverapi.reader.Readers; +import org.labkey.test.util.CachingSupplier; import org.labkey.test.util.CspLogUtil; +import org.labkey.test.util.TestDataGenerator; import org.labkey.test.util.TestLogger; import org.labkey.test.util.Version; import org.openqa.selenium.Dimension; @@ -37,8 +39,10 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.Properties; +import java.util.Random; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -245,11 +249,29 @@ public static boolean isCloudPipelineEnabled() return getBooleanProperty("use.cloud.pipeline", false); } + private static final CachingSupplier defaultBucketName = new CachingSupplier<>(() -> + TestDataGenerator.randomChoice(Stream.of(getCloudPipelineBucketNameWithSqs(), getCloudPipelineBucketNameWithoutSqs()) + .filter(Objects::nonNull).toList())); + /** + * Get a pipeline bucket name for use with S3 testing. There are two buckets in different regions. This will + * randomly select one of them (and cache the result). If SQS is required, use + * {@link #getCloudPipelineBucketNameWithSqs()} + */ public static String getCloudPipelineBucketName() + { + return defaultBucketName.get(); + } + + public static String getCloudPipelineBucketNameWithSqs() { return System.getProperty("cloud.pipeline.bucket"); } + public static String getCloudPipelineBucketNameWithoutSqs() + { + return System.getProperty("cloud.pipeline.bucket.nosqs"); + } + public static Optional getWindowSize() { String dimensionStr = System.getProperty("webtest.window.size", "1280x1024");