Skip to content

Commit 74b33ba

Browse files
authored
pull retry loop forward to cover everything from resolving auth scheme onward (#2966)
1 parent 7ea97e5 commit 74b33ba

File tree

17,321 files changed

+51628
-51166
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

17,321 files changed

+51628
-51166
lines changed

.changelog/70097b97ec1146ffb87105b3aa6ad390.json

+419
Large diffs are not rendered by default.

codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/AwsHttpChecksumGenerator.java

+44-3
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ public void writeAdditionalFiles(
160160
if (supportsComputeInputChecksumsWorkflow) {
161161
goDelegator.useShapeWriter(service, writer -> {
162162
generateInputComputedChecksumMetadataHelpers(writer, model, symbolProvider, service);
163+
writePackageLevelAddInputChecksumMiddleware(writer);
163164
});
164165
}
165166

@@ -257,16 +258,14 @@ private void writeInputMiddlewareHelper(
257258
writer.openBlock("func $L(stack *middleware.Stack, options Options) error {", "}",
258259
getAddInputMiddlewareFuncName(operationName), () -> {
259260
writer.write("""
260-
return $T(stack, $T{
261+
return addInputChecksumMiddleware(stack, $T{
261262
GetAlgorithm: $L,
262263
RequireChecksum: $L,
263264
RequestChecksumCalculation: options.RequestChecksumCalculation,
264265
EnableTrailingChecksum: $L,
265266
EnableComputeSHA256PayloadHash: true,
266267
EnableDecodedContentLengthHeader: $L,
267268
})""",
268-
SymbolUtils.createValueSymbolBuilder("AddInputMiddleware",
269-
AwsGoDependency.SERVICE_INTERNAL_CHECKSUM).build(),
270269
SymbolUtils.createValueSymbolBuilder("InputMiddlewareOptions",
271270
AwsGoDependency.SERVICE_INTERNAL_CHECKSUM).build(),
272271
hasRequestAlgorithmMember ?
@@ -279,6 +278,48 @@ private void writeInputMiddlewareHelper(
279278
writer.insertTrailingNewline();
280279
}
281280

281+
// adapted (service/internal/checksum).AddInputMiddleware to give the service client control over its middleware stack,
282+
// per #2507
283+
private void writePackageLevelAddInputChecksumMiddleware(GoWriter writer) {
284+
writer.addUseImports(SmithyGoDependency.SMITHY_MIDDLEWARE);
285+
writer.addUseImports(AwsGoDependency.SERVICE_INTERNAL_CHECKSUM);
286+
writer.write("""
287+
func addInputChecksumMiddleware(stack *middleware.Stack, options internalChecksum.InputMiddlewareOptions) (err error) {
288+
err = stack.Initialize.Add(&internalChecksum.SetupInputContext{
289+
GetAlgorithm: options.GetAlgorithm,
290+
RequireChecksum: options.RequireChecksum,
291+
RequestChecksumCalculation: options.RequestChecksumCalculation,
292+
}, middleware.Before)
293+
if err != nil {
294+
return err
295+
}
296+
297+
stack.Build.Remove("ContentChecksum")
298+
299+
inputChecksum := &internalChecksum.ComputeInputPayloadChecksum{
300+
EnableTrailingChecksum: options.EnableTrailingChecksum,
301+
EnableComputePayloadHash: options.EnableComputeSHA256PayloadHash,
302+
EnableDecodedContentLengthHeader: options.EnableDecodedContentLengthHeader,
303+
}
304+
if err := stack.Finalize.Insert(inputChecksum, "ResolveEndpointV2", middleware.After); err != nil {
305+
return err
306+
}
307+
308+
if options.EnableTrailingChecksum {
309+
trailerMiddleware := &internalChecksum.AddInputChecksumTrailer{
310+
EnableTrailingChecksum: inputChecksum.EnableTrailingChecksum,
311+
EnableComputePayloadHash: inputChecksum.EnableComputePayloadHash,
312+
EnableDecodedContentLengthHeader: inputChecksum.EnableDecodedContentLengthHeader,
313+
}
314+
if err := stack.Finalize.Insert(trailerMiddleware, inputChecksum.ID(), middleware.After); err != nil {
315+
return err
316+
}
317+
}
318+
319+
return nil
320+
}""");
321+
}
322+
282323
private void writeOutputMiddlewareHelper(
283324
GoWriter writer,
284325
Model model,

codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/AwsRetryMiddlewareHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func addRetry(stack *middleware.Stack, o Options) error {
5050
m.LogAttempts = o.ClientLogMode.IsRetries()
5151
m.OperationMeter = o.MeterProvider.Meter($S)
5252
})
53-
if err := stack.Finalize.Insert(attempt, "Signing", middleware.Before); err != nil {
53+
if err := stack.Finalize.Insert(attempt, "ResolveAuthScheme", middleware.Before); err != nil {
5454
return err
5555
}
5656
if err := stack.Finalize.Insert(&retry.MetricsHeader{}, attempt.ID(), middleware.After); err != nil {

internal/protocoltest/awsrestjson/api_client.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/protocoltest/awsrestjson/snapshot/api_op_AllQueryStringTypes.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ AllQueryStringTypes
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_ConstantAndVariableQueryString.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ ConstantAndVariableQueryString
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_ConstantQueryString.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ ConstantQueryString
1919
RecursionDetection
2020
spanBuildRequestEnd
2121
Finalize stack step
22+
spanRetryLoop
23+
Retry
24+
RetryMetricsHeader
2225
ResolveAuthScheme
2326
GetIdentity
2427
ResolveEndpointV2
2528
disableHTTPS
2629
ComputePayloadHash
27-
spanRetryLoop
28-
Retry
29-
RetryMetricsHeader
3030
setLegacyContextSigningOptions
3131
Signing
3232
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_ContentTypeParameters.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ ContentTypeParameters
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_DatetimeOffsets.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ DatetimeOffsets
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_DocumentType.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ DocumentType
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_DocumentTypeAsMapValue.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ DocumentTypeAsMapValue
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_DocumentTypeAsPayload.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ DocumentTypeAsPayload
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_EmptyInputAndEmptyOutput.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ EmptyInputAndEmptyOutput
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_EndpointOperation.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ EndpointOperation
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
EndpointHostPrefix
2629
ComputePayloadHash
27-
spanRetryLoop
28-
Retry
29-
RetryMetricsHeader
3030
setLegacyContextSigningOptions
3131
Signing
3232
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_EndpointWithHostLabelOperation.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ EndpointWithHostLabelOperation
1919
RecursionDetection
2020
spanBuildRequestEnd
2121
Finalize stack step
22+
spanRetryLoop
23+
Retry
24+
RetryMetricsHeader
2225
ResolveAuthScheme
2326
GetIdentity
2427
ResolveEndpointV2
2528
disableHTTPS
2629
EndpointHostPrefix
2730
ComputePayloadHash
28-
spanRetryLoop
29-
Retry
30-
RetryMetricsHeader
3131
setLegacyContextSigningOptions
3232
Signing
3333
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_FractionalSeconds.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ FractionalSeconds
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_GreetingWithErrors.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ GreetingWithErrors
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_HostWithPathOperation.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ HostWithPathOperation
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_HttpChecksumRequired.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ HttpChecksumRequired
1919
RecursionDetection
2020
spanBuildRequestEnd
2121
Finalize stack step
22+
spanRetryLoop
23+
Retry
24+
RetryMetricsHeader
2225
ResolveAuthScheme
2326
GetIdentity
2427
ResolveEndpointV2
2528
disableHTTPS
2629
ComputePayloadHash
27-
spanRetryLoop
28-
Retry
29-
RetryMetricsHeader
3030
setLegacyContextSigningOptions
3131
Signing
3232
Deserialize stack step

internal/protocoltest/awsrestjson/snapshot/api_op_HttpEnumPayload.go.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ HttpEnumPayload
1818
RecursionDetection
1919
spanBuildRequestEnd
2020
Finalize stack step
21+
spanRetryLoop
22+
Retry
23+
RetryMetricsHeader
2124
ResolveAuthScheme
2225
GetIdentity
2326
ResolveEndpointV2
2427
disableHTTPS
2528
ComputePayloadHash
26-
spanRetryLoop
27-
Retry
28-
RetryMetricsHeader
2929
setLegacyContextSigningOptions
3030
Signing
3131
Deserialize stack step

0 commit comments

Comments
 (0)