Skip to content

Commit 0f6fa65

Browse files
committed
Self review
1 parent fc84b61 commit 0f6fa65

File tree

21 files changed

+96
-153
lines changed

21 files changed

+96
-153
lines changed

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsSdkSetting.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,13 +210,13 @@ public object AwsSdkSetting {
210210
strEnvSetting("aws.sigV4aSigningRegionSet", "AWS_SIGV4A_SIGNING_REGION_SET")
211211

212212
/**
213-
* todo
213+
* Configures request checksum calculation
214214
*/
215215
public val AwsRequestChecksumCalculation: EnvironmentSetting<String> =
216216
strEnvSetting("aws.requestChecksumCalculation", "AWS_REQUEST_CHECKSUM_CALCULATION")
217217

218218
/**
219-
* todo
219+
* Configures response checksum validation
220220
*/
221221
public val AwsResponseChecksumValidation: EnvironmentSetting<String> =
222222
strEnvSetting("aws.responseChecksumValidation", "AWS_RESPONSE_CHECKSUM_VALIDATION")

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/checksums/ResolveRequestChecksumCalculation.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,25 @@ import aws.sdk.kotlin.runtime.InternalSdkApi
55
import aws.sdk.kotlin.runtime.config.AwsSdkSetting
66
import aws.sdk.kotlin.runtime.config.profile.AwsProfile
77
import aws.sdk.kotlin.runtime.config.profile.requestChecksumCalculation
8-
import aws.smithy.kotlin.runtime.client.config.ChecksumConfigOption
8+
import aws.smithy.kotlin.runtime.client.config.HttpChecksumConfigOption
99
import aws.smithy.kotlin.runtime.config.resolve
1010
import aws.smithy.kotlin.runtime.util.LazyAsyncValue
1111
import aws.smithy.kotlin.runtime.util.PlatformProvider
12-
import java.util.*
1312

1413
/**
15-
* todo
14+
* Attempts to resolve requestChecksumCalculation from the specified sources.
15+
* @return requestChecksumCalculation setting if found, the default value if not.
1616
*/
1717
@InternalSdkApi
18-
public suspend fun resolveRequestChecksumCalculation(platform: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue<AwsProfile>): ChecksumConfigOption {
18+
public suspend fun resolveRequestChecksumCalculation(platform: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue<AwsProfile>): HttpChecksumConfigOption {
1919
val unparsedString = AwsSdkSetting.AwsRequestChecksumCalculation.resolve(platform) ?: profile.get().requestChecksumCalculation
2020
return unparsedString?.let {
2121
when (unparsedString.uppercase()) {
22-
"WHEN_SUPPORTED" -> ChecksumConfigOption.WHEN_SUPPORTED
23-
"WHEN_REQUIRED" -> ChecksumConfigOption.WHEN_REQUIRED
22+
"WHEN_SUPPORTED" -> HttpChecksumConfigOption.WHEN_SUPPORTED
23+
"WHEN_REQUIRED" -> HttpChecksumConfigOption.WHEN_REQUIRED
2424
else -> throw ConfigurationException(
25-
"'$it' is not a valid value for request checksum calculation. Valid values are: ${ChecksumConfigOption.entries.toTypedArray()}",
25+
"'$it' is not a valid value for request checksum calculation. Valid values are: ${HttpChecksumConfigOption.entries.toTypedArray()}",
2626
)
2727
}
28-
} ?: ChecksumConfigOption.WHEN_SUPPORTED
28+
} ?: HttpChecksumConfigOption.WHEN_SUPPORTED
2929
}

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/checksums/ResolveResponseChecksumValidation.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,25 @@ import aws.sdk.kotlin.runtime.InternalSdkApi
55
import aws.sdk.kotlin.runtime.config.AwsSdkSetting
66
import aws.sdk.kotlin.runtime.config.profile.AwsProfile
77
import aws.sdk.kotlin.runtime.config.profile.responseChecksumValidation
8-
import aws.smithy.kotlin.runtime.client.config.ChecksumConfigOption
8+
import aws.smithy.kotlin.runtime.client.config.HttpChecksumConfigOption
99
import aws.smithy.kotlin.runtime.config.resolve
1010
import aws.smithy.kotlin.runtime.util.LazyAsyncValue
1111
import aws.smithy.kotlin.runtime.util.PlatformProvider
12-
import java.util.*
1312

1413
/**
15-
* todo
14+
* Attempts to resolve responseChecksumValidation from the specified sources.
15+
* @return responseChecksumValidation setting if found, the default value if not.
1616
*/
1717
@InternalSdkApi
18-
public suspend fun resolveResponseChecksumValidation(platform: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue<AwsProfile>): ChecksumConfigOption {
18+
public suspend fun resolveResponseChecksumValidation(platform: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue<AwsProfile>): HttpChecksumConfigOption {
1919
val unparsedString = AwsSdkSetting.AwsResponseChecksumValidation.resolve(platform) ?: profile.get().responseChecksumValidation
2020
return unparsedString?.let {
2121
when (unparsedString.uppercase()) {
22-
"WHEN_SUPPORTED" -> ChecksumConfigOption.WHEN_SUPPORTED
23-
"WHEN_REQUIRED" -> ChecksumConfigOption.WHEN_REQUIRED
22+
"WHEN_SUPPORTED" -> HttpChecksumConfigOption.WHEN_SUPPORTED
23+
"WHEN_REQUIRED" -> HttpChecksumConfigOption.WHEN_REQUIRED
2424
else -> throw ConfigurationException(
25-
"'$it' is not a valid value for request checksum calculation. Valid values are: ${ChecksumConfigOption.entries.toTypedArray()}",
25+
"'$it' is not a valid value for request checksum calculation. Valid values are: ${HttpChecksumConfigOption.entries.toTypedArray()}",
2626
)
2727
}
28-
} ?: ChecksumConfigOption.WHEN_SUPPORTED
28+
} ?: HttpChecksumConfigOption.WHEN_SUPPORTED
2929
}

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/profile/AwsProfile.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,14 +168,14 @@ public val AwsProfile.sigV4aSigningRegionSet: String?
168168
get() = getOrNull("sigv4a_signing_region_set")
169169

170170
/**
171-
* todo
171+
* Configures request checksum calculation
172172
*/
173173
@InternalSdkApi
174174
public val AwsProfile.requestChecksumCalculation: String?
175175
get() = getOrNull("request_checksum_calculation")
176176

177177
/**
178-
* todo
178+
* Configures response checksum validation
179179
*/
180180
@InternalSdkApi
181181
public val AwsProfile.responseChecksumValidation: String?

buildSrc/.kotlin/errors/errors-1731120437202.log

Lines changed: 0 additions & 4 deletions
This file was deleted.

codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/flexiblechecksums/FlexibleChecksumsRequest.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ class FlexibleChecksumsRequest : KotlinIntegration {
3333
listOf(
3434
ConfigProperty {
3535
name = "requestChecksumCalculation"
36-
symbol = RuntimeTypes.SmithyClient.Config.ChecksumConfigOption
36+
symbol = RuntimeTypes.SmithyClient.Config.HttpChecksumConfigOption
3737
baseClass = RuntimeTypes.SmithyClient.Config.HttpChecksumClientConfig
3838
useNestedBuilderBaseClass()
39-
documentation = "" // todo
40-
propertyType = ConfigPropertyType.RequiredWithDefault("ChecksumConfigOption.WHEN_SUPPORTED")
39+
documentation = "Configures request checksum calculation"
40+
propertyType = ConfigPropertyType.RequiredWithDefault("HttpChecksumConfigOption.WHEN_SUPPORTED")
4141
},
4242
)
4343

@@ -54,13 +54,13 @@ class FlexibleChecksumsRequest : KotlinIntegration {
5454
writer.withBlock("when(config.requestChecksumCalculation) {", "}") {
5555
writer.write(
5656
"#T.WHEN_SUPPORTED -> op.context.#T(#T.FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED)",
57-
RuntimeTypes.SmithyClient.Config.ChecksumConfigOption,
57+
RuntimeTypes.SmithyClient.Config.HttpChecksumConfigOption,
5858
RuntimeTypes.Core.BusinessMetrics.emitBusinessMetric,
5959
RuntimeTypes.Core.BusinessMetrics.SmithyBusinessMetric,
6060
)
6161
writer.write(
6262
"#T.WHEN_REQUIRED -> op.context.#T(#T.FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED)",
63-
RuntimeTypes.SmithyClient.Config.ChecksumConfigOption,
63+
RuntimeTypes.SmithyClient.Config.HttpChecksumConfigOption,
6464
RuntimeTypes.Core.BusinessMetrics.emitBusinessMetric,
6565
RuntimeTypes.Core.BusinessMetrics.SmithyBusinessMetric,
6666
)
@@ -87,7 +87,7 @@ class FlexibleChecksumsRequest : KotlinIntegration {
8787
.members()
8888
.first { it.memberName == httpChecksumTrait.requestAlgorithmMember.get() }
8989

90-
val userSelectedChecksumAlgorithm = ctx.symbolProvider.toMemberName(requestAlgorithmMember)
90+
val requestAlgorithmMemberName = ctx.symbolProvider.toMemberName(requestAlgorithmMember)
9191
val requestChecksumRequired = httpChecksumTrait.isRequestChecksumRequired
9292

9393
writer.withBlock(
@@ -97,7 +97,7 @@ class FlexibleChecksumsRequest : KotlinIntegration {
9797
) {
9898
writer.write("requestChecksumRequired = #L,", requestChecksumRequired)
9999
writer.write("requestChecksumCalculation = config.requestChecksumCalculation,")
100-
writer.write("userSelectedChecksumAlgorithm = input.#L?.value,", userSelectedChecksumAlgorithm)
100+
writer.write("userSelectedChecksumAlgorithm = input.#L?.value,", requestAlgorithmMemberName)
101101
}
102102
}
103103
}

codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/flexiblechecksums/FlexibleChecksumsResponse.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ class FlexibleChecksumsResponse : KotlinIntegration {
3030
listOf(
3131
ConfigProperty {
3232
name = "responseChecksumValidation"
33-
symbol = RuntimeTypes.SmithyClient.Config.ChecksumConfigOption
33+
symbol = RuntimeTypes.SmithyClient.Config.HttpChecksumConfigOption
3434
baseClass = RuntimeTypes.SmithyClient.Config.HttpChecksumClientConfig
3535
useNestedBuilderBaseClass()
36-
documentation = "" // todo
37-
propertyType = ConfigPropertyType.RequiredWithDefault("ChecksumConfigOption.WHEN_SUPPORTED")
36+
documentation = "Configures response checksum validation"
37+
propertyType = ConfigPropertyType.RequiredWithDefault("HttpChecksumConfigOption.WHEN_SUPPORTED")
3838
},
3939
)
4040

@@ -48,13 +48,13 @@ class FlexibleChecksumsResponse : KotlinIntegration {
4848
writer.withBlock("when(config.responseChecksumValidation) {", "}") {
4949
writer.write(
5050
"#T.WHEN_SUPPORTED -> op.context.#T(#T.FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED)",
51-
RuntimeTypes.SmithyClient.Config.ChecksumConfigOption,
51+
RuntimeTypes.SmithyClient.Config.HttpChecksumConfigOption,
5252
RuntimeTypes.Core.BusinessMetrics.emitBusinessMetric,
5353
RuntimeTypes.Core.BusinessMetrics.SmithyBusinessMetric,
5454
)
5555
writer.write(
5656
"#T.WHEN_REQUIRED -> op.context.#T(#T.FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED)",
57-
RuntimeTypes.SmithyClient.Config.ChecksumConfigOption,
57+
RuntimeTypes.SmithyClient.Config.HttpChecksumConfigOption,
5858
RuntimeTypes.Core.BusinessMetrics.emitBusinessMetric,
5959
RuntimeTypes.Core.BusinessMetrics.SmithyBusinessMetric,
6060
)
@@ -86,7 +86,7 @@ class FlexibleChecksumsResponse : KotlinIntegration {
8686
"))",
8787
RuntimeTypes.HttpClient.Interceptors.FlexibleChecksumsResponseInterceptor,
8888
) {
89-
writer.write("responseValidation = input.#L?.value == \"ENABLED\",", requestValidationModeMemberName)
89+
writer.write("responseValidationRequired = input.#L?.value == \"ENABLED\",", requestValidationModeMemberName)
9090
writer.write("responseChecksumValidation = config.responseChecksumValidation,")
9191
}
9292
}

services/s3/e2eTest/src/MutliRegionAccessPointTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import aws.sdk.kotlin.e2etest.S3TestUtils.createMultiRegionAccessPoint
88
import aws.sdk.kotlin.e2etest.S3TestUtils.deleteBucketAndAllContents
99
import aws.sdk.kotlin.e2etest.S3TestUtils.deleteMultiRegionAccessPoint
1010
import aws.sdk.kotlin.e2etest.S3TestUtils.getAccountId
11-
import aws.sdk.kotlin.e2etest.S3TestUtils.getBucketWithPrefix
11+
import aws.sdk.kotlin.e2etest.S3TestUtils.getBucket
1212
import aws.sdk.kotlin.e2etest.S3TestUtils.getMultiRegionAccessPointArn
1313
import aws.sdk.kotlin.e2etest.S3TestUtils.multiRegionAccessPointWasCreated
1414
import aws.sdk.kotlin.services.s3.S3Client
@@ -47,8 +47,8 @@ class MutliRegionAccessPointTest {
4747
@BeforeAll
4848
private fun setUp(): Unit = runBlocking {
4949
accountId = getAccountId()
50-
usWestBucket = getBucketWithPrefix(s3West, MRAP_BUCKET_PREFIX, "us-west-2", accountId)
51-
usEastBucket = getBucketWithPrefix(s3East, MRAP_BUCKET_PREFIX, "us-east-2", accountId)
50+
usWestBucket = getBucket(s3West, MRAP_BUCKET_PREFIX, "us-west-2", accountId)
51+
usEastBucket = getBucket(s3East, MRAP_BUCKET_PREFIX, "us-east-2", accountId)
5252

5353
createMultiRegionAccessPoint(
5454
s3Control,

services/s3/e2eTest/src/PaginatorTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class PaginatorTest {
3333

3434
@BeforeAll
3535
fun createResources(): Unit = runBlocking {
36-
testBucket = S3TestUtils.getTestBucketWithPrefix(client)
36+
testBucket = S3TestUtils.getTestBucket(client)
3737
}
3838

3939
@AfterAll

services/s3/e2eTest/src/S3ChecksumTest.kt

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ package aws.sdk.kotlin.e2etest
33
import aws.sdk.kotlin.e2etest.S3TestUtils.deleteBucketContents
44
import aws.sdk.kotlin.e2etest.S3TestUtils.deleteMultiPartUploads
55
import aws.sdk.kotlin.e2etest.S3TestUtils.getAccountId
6-
import aws.sdk.kotlin.e2etest.S3TestUtils.getTestBucketByName
7-
import aws.sdk.kotlin.runtime.auth.credentials.ProcessCredentialsProvider
6+
import aws.sdk.kotlin.e2etest.S3TestUtils.getBucketByName
87
import aws.sdk.kotlin.services.s3.*
98
import aws.sdk.kotlin.services.s3.model.CompletedMultipartUpload
109
import aws.sdk.kotlin.services.s3.model.CompletedPart
10+
import aws.sdk.kotlin.services.s3.model.GetObjectRequest
1111
import aws.smithy.kotlin.runtime.content.ByteStream
1212
import aws.smithy.kotlin.runtime.content.fromInputStream
1313
import kotlinx.coroutines.runBlocking
@@ -19,33 +19,28 @@ import java.util.*
1919
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
2020
@TestMethodOrder(MethodOrderer.OrderAnnotation::class)
2121
class S3ChecksumTest {
22-
private val s3West = S3Client {
23-
region = "us-west-2"
24-
credentialsProvider = ProcessCredentialsProvider("isengardcli credentials --awscli [email protected] --role Admin")
25-
}
26-
private val checksumsTestBucket = "s3-test-bucket-ci-motorcade"
22+
private val client = S3Client { region = "us-west-2" }
23+
private val testBucket = "s3-test-bucket-ci-motorcade"
2724
private val testObject = "test-object"
28-
private lateinit var accountId: String
29-
private lateinit var usWestBucket: String
3025

3126
@BeforeAll
3227
private fun setUp(): Unit = runBlocking {
33-
accountId = getAccountId()
34-
usWestBucket = getTestBucketByName(s3West, checksumsTestBucket, "us-west-2", accountId)
28+
val accountId = getAccountId()
29+
getBucketByName(client, testBucket, "us-west-2", accountId)
3530
}
3631

3732
@AfterAll
3833
private fun cleanUp(): Unit = runBlocking {
39-
deleteMultiPartUploads(s3West, checksumsTestBucket)
40-
deleteBucketContents(s3West, checksumsTestBucket)
41-
s3West.close()
34+
deleteMultiPartUploads(client, testBucket)
35+
deleteBucketContents(client, testBucket)
36+
client.close()
4237
}
4338

4439
@Test
4540
@Order(1)
4641
fun testPutObject(): Unit = runBlocking {
47-
s3West.putObject {
48-
bucket = checksumsTestBucket
42+
client.putObject {
43+
bucket = testBucket
4944
key = testObject
5045
body = ByteStream.fromString("Hello World")
5146
}
@@ -54,8 +49,8 @@ class S3ChecksumTest {
5449
@Test
5550
@Order(2)
5651
fun testPutObjectWithEmptyBody(): Unit = runBlocking {
57-
s3West.putObject {
58-
bucket = checksumsTestBucket
52+
client.putObject {
53+
bucket = testBucket
5954
key = testObject + UUID.randomUUID()
6055
}
6156
}
@@ -70,8 +65,8 @@ class S3ChecksumTest {
7065
}
7166
val inputStream = FileInputStream(tempFile)
7267

73-
s3West.putObject {
74-
bucket = checksumsTestBucket
68+
client.putObject {
69+
bucket = testBucket
7570
key = testObject + UUID.randomUUID()
7671
body = ByteStream.fromInputStream(inputStream, testString.length.toLong())
7772
}
@@ -84,29 +79,29 @@ class S3ChecksumTest {
8479
val partOne = "Hello".repeat(1_048_576)
8580
val partTwo = "World".repeat(1_048_576)
8681

87-
val testUploadId = s3West.createMultipartUpload {
88-
bucket = checksumsTestBucket
82+
val testUploadId = client.createMultipartUpload {
83+
bucket = testBucket
8984
key = testObject
9085
}.uploadId
9186

92-
val eTagPartOne = s3West.uploadPart {
93-
bucket = checksumsTestBucket
87+
val eTagPartOne = client.uploadPart {
88+
bucket = testBucket
9489
key = testObject
9590
partNumber = 1
9691
uploadId = testUploadId
9792
body = ByteStream.fromString(partOne)
9893
}.eTag
9994

100-
val eTagPartTwo = s3West.uploadPart {
101-
bucket = checksumsTestBucket
95+
val eTagPartTwo = client.uploadPart {
96+
bucket = testBucket
10297
key = testObject
10398
partNumber = 2
10499
uploadId = testUploadId
105100
body = ByteStream.fromString(partTwo)
106101
}.eTag
107102

108-
s3West.completeMultipartUpload {
109-
bucket = checksumsTestBucket
103+
client.completeMultipartUpload {
104+
bucket = testBucket
110105
key = testObject
111106
uploadId = testUploadId
112107
multipartUpload = CompletedMultipartUpload {
@@ -123,6 +118,11 @@ class S3ChecksumTest {
123118
}
124119
}
125120

126-
// TODO: Get the object and make sure a composite checksum doesn't break us
121+
client.getObject(
122+
GetObjectRequest {
123+
bucket = testBucket
124+
key = testObject
125+
},
126+
) {}
127127
}
128128
}

0 commit comments

Comments
 (0)