Skip to content

Commit 8c088ee

Browse files
committed
Fix integration tests
1 parent bdf2544 commit 8c088ee

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

src/integrationTest/java/org/radarbase/output/RestructureS3IntegrationTest.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@ import kotlinx.coroutines.test.runTest
1616
import kotlinx.coroutines.withContext
1717
import org.junit.jupiter.api.Assertions.assertEquals
1818
import org.junit.jupiter.api.Test
19+
import org.radarbase.output.config.PathConfig
1920
import org.radarbase.output.config.PathFormatterConfig
2021
import org.radarbase.output.config.ResourceConfig
2122
import org.radarbase.output.config.RestructureConfig
2223
import org.radarbase.output.config.S3Config
24+
import org.radarbase.output.config.TargetFormatterConfig
2325
import org.radarbase.output.config.TopicConfig
2426
import org.radarbase.output.config.WorkerConfig
2527
import org.radarbase.output.util.SuspendedCloseable.Companion.useSuspended
@@ -49,9 +51,15 @@ class RestructureS3IntegrationTest {
4951
)
5052
val config = RestructureConfig(
5153
sources = listOf(ResourceConfig("s3", path = Paths.get("in"), s3 = sourceConfig)),
52-
targets = mapOf("radar-output-storage" to ResourceConfig("s3", path = Paths.get("output"), s3 = targetConfig)),
54+
targets = mapOf(
55+
"radar-output-storage" to ResourceConfig("s3", path = Paths.get("output"), s3 = targetConfig),
56+
"radar-test-root" to ResourceConfig("s3", path = Paths.get("otherOutput"), s3 = targetConfig),
57+
),
5358
worker = WorkerConfig(minimumFileAge = 0L),
5459
topics = topicConfig,
60+
paths = PathConfig(
61+
target = TargetFormatterConfig("\${projectId}"),
62+
),
5563
)
5664
val application = Application(config)
5765
val sourceClient = sourceConfig.createS3Client()
@@ -92,7 +100,7 @@ class RestructureS3IntegrationTest {
92100
val firstParticipantOutput =
93101
"output/STAGING_PROJECT/1543bc93-3c17-4381-89a5-c5d6272b827c/application_server_status/CONNECTED"
94102
val secondParticipantOutput =
95-
"output/radar-test-root/4ab9b985-6eec-4e51-9a29-f4c571c89f99/android_phone_acceleration"
103+
"otherOutput/radar-test-root/4ab9b985-6eec-4e51-9a29-f4c571c89f99/android_phone_acceleration"
96104

97105
val targetBucket = requireNotNull(targetConfig.bucket)
98106

@@ -119,7 +127,6 @@ class RestructureS3IntegrationTest {
119127
return@coroutineScope withContext(Dispatchers.IO) {
120128
targetClient.listObjects(
121129
ListObjectsArgs.Builder().bucketBuild(targetBucket) {
122-
prefix("output")
123130
recursive(true)
124131
useUrlEncodingType(false)
125132
},

src/main/java/org/radarbase/output/target/S3TargetStorage.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import io.minio.MinioClient
2525
import io.minio.RemoveObjectArgs
2626
import io.minio.StatObjectArgs
2727
import io.minio.UploadObjectArgs
28+
import io.minio.errors.ErrorResponseException
2829
import org.radarbase.output.config.S3Config
2930
import org.radarbase.output.source.S3SourceStorage.Companion.faultTolerant
3031
import org.radarbase.output.util.bucketBuild
@@ -80,7 +81,17 @@ class S3TargetStorage(
8081
logger.info("Bucket $bucket already exists.")
8182
} else {
8283
val makeBucketRequest = MakeBucketArgs.builder().bucketBuild(bucket)
83-
faultTolerant { s3Client.makeBucket(makeBucketRequest) }
84+
faultTolerant {
85+
try {
86+
s3Client.makeBucket(makeBucketRequest)
87+
} catch (ex: ErrorResponseException) {
88+
if (ex.errorResponse().code() == "BucketAlreadyOwnedByYou") {
89+
logger.warn("Bucket {} was already created while the request was busy", bucket)
90+
} else {
91+
throw ex
92+
}
93+
}
94+
}
8495
logger.info("Bucket $bucket was created.")
8596
}
8697
} catch (ex: Exception) {

0 commit comments

Comments
 (0)