Skip to content
Snippets Groups Projects
Unverified Commit f63980cd authored by Russell Cohen's avatar Russell Cohen Committed by GitHub
Browse files

Fix AwsQuery target serialization (#3210)

## Motivation and Context
- aws-sdk-rust#957

----

_By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice._
parent 3cac667f
Branches
Tags
No related merge requests found
......@@ -10,3 +10,9 @@
# references = ["smithy-rs#920"]
# meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client | server | all"}
# author = "rcoh"
[[aws-sdk-rust]]
message = "Fix broken serialization for SQS"
references = ["smithy-rs#3210", "aws-sdk-rust#957"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "rcoh"
......@@ -90,9 +90,11 @@ private fun codegenTests(properties: PropertyRetriever, allTests: List<CodegenTe
allTests
}
require(ret.isNotEmpty()) {
"None of the provided module overrides (`$modulesOverride`) are valid test services (`${allTests.map {
"None of the provided module overrides (`$modulesOverride`) are valid test services (`${
allTests.map {
it.module
}}`)"
}
}`)"
}
return ret
}
......@@ -121,9 +123,11 @@ fun cargoCommands(properties: PropertyRetriever): List<Cargo> {
AllCargoCommands
}
require(ret.isNotEmpty()) {
"None of the provided cargo commands (`$cargoCommandsOverride`) are valid cargo commands (`${AllCargoCommands.map {
"None of the provided cargo commands (`$cargoCommandsOverride`) are valid cargo commands (`${
AllCargoCommands.map {
it.toString
}}`)"
}
}`)"
}
return ret
}
......@@ -137,6 +141,7 @@ fun Project.registerGenerateSmithyBuildTask(
this.tasks.register("generateSmithyBuild") {
description = "generate smithy-build.json"
outputs.file(project.projectDir.resolve("smithy-build.json"))
// NOTE: This is not working.
allCodegenTests.flatMap { it.imports }.forEach { inputs.file(project.projectDir.resolve(it)) }
doFirst {
......
......@@ -73,7 +73,11 @@ val allCodegenTests = listOf(
ClientTest("aws.protocoltests.restxml#RestXml", "rest_xml", addMessageToErrors = false),
ClientTest("aws.protocoltests.query#AwsQuery", "aws_query", addMessageToErrors = false),
ClientTest("aws.protocoltests.ec2#AwsEc2", "ec2_query", addMessageToErrors = false),
ClientTest("aws.protocoltests.restxml.xmlns#RestXmlWithNamespace", "rest_xml_namespace", addMessageToErrors = false),
ClientTest(
"aws.protocoltests.restxml.xmlns#RestXmlWithNamespace",
"rest_xml_namespace",
addMessageToErrors = false,
),
ClientTest("aws.protocoltests.restxml#RestXmlExtras", "rest_xml_extras", addMessageToErrors = false),
ClientTest(
"aws.protocoltests.restxmlunwrapped#RestXmlExtrasUnwrappedErrors",
......@@ -108,7 +112,10 @@ val allCodegenTests = listOf(
"pokemon-service-awsjson-client",
dependsOn = listOf("pokemon-awsjson.smithy", "pokemon-common.smithy"),
),
ClientTest("aws.protocoltests.misc#QueryCompatService", "query-compat-test", dependsOn = listOf("aws-json-query-compat.smithy")),
).map(ClientTest::toCodegenTest)
// use this line to run just one test
// .filter { it.module == "query-compat-test" }
project.registerGenerateSmithyBuildTask(rootProject, pluginName, allCodegenTests)
project.registerGenerateCargoWorkspaceTask(rootProject, pluginName, allCodegenTests, workingDirUnderBuildDir)
......
$version: "1.0"
namespace aws.protocoltests.misc
use aws.protocols#awsQueryCompatible
use aws.protocols#awsJson1_0
use aws.protocols#awsQueryError
use smithy.test#httpRequestTests
@awsQueryCompatible
@awsJson1_0
service QueryCompatService {
operations: [
Operation
]
}
@httpRequestTests([{
id: "BasicQueryCompatTest"
protocol: awsJson1_0,
method: "POST",
uri: "https://foo.com",
body: "{\"message\":\"hello!\"}",
bodyMedaType: "application/json",
params: {
message: "hello!"
},
headers: { "x-amz-target": "QueryCompatService.Operation"}
}
])
operation Operation {
input: OperationInputOutput
output: OperationInputOutput
}
structure OperationInputOutput {
message: String
}
......@@ -92,4 +92,7 @@ class AwsQueryCompatible(
override fun parseEventStreamErrorMetadata(operationShape: OperationShape): RuntimeType =
awsJson.parseEventStreamErrorMetadata(operationShape)
override fun additionalRequestHeaders(operationShape: OperationShape): List<Pair<String, String>> =
listOf("x-amz-target" to "${codegenContext.serviceShape.id.name}.${operationShape.id.name}")
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment