-
Notifications
You must be signed in to change notification settings - Fork 206
migrate http test utils to new http-client crate #3888
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! The only CI failure that still seems relevant is the external types failures
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
## Motivation and Context Follow up PR to #3888 ## Description * Update `aws/sdk/integration-tests` to use the `test-util` feature(s) directly from `aws-smithy-http-client` rather than `aws-smithy-runtime` * ~Refactor `aws-smithy-http` to use `http-1.x~ * Fixed an erroneous error message from `imds` credentials provider in passing while tracking down a test failure * Fixed a few tests that were not immune to environment variables (e.g. on dev desktop `AWS_EC2_METADATA_ENABLED=false` is set by default and was causing some test failures) I started pulling at some threads and found them to be quite load bearing (e.g. `inlineable/serialization_settings.rs`) and would require updating all of codegen to use `http-1.x`. ~This PR is a bit of a half step with some stop gaps put into place (e.g. the new `compat` feature of `aws-smithy-http` or inlining a function) to prevent the need to update everything in a single PR. Future PR's will continue where I left off here. ~ One lesson I learned the hard way was that our integration test `Cargo.toml` have to reflect codegen. I had updated them to all use `http = "1"` and got it all working only to realize codegen generates `http = "0.2.9"` and `http-1x = { package = "http", version = "1"}` and thus the integration tests have to look the same as that. ### Future * ~Continue to refactor `aws-smithy-http` to upgrade to `http-body-1.x`. ~ * Refactor codegen to update to `http-1.x` UPDATE: I reverted the update to http 1.x for `aws-smithy-http`. This needs to be done and planned with the server and I don't want it to unnecessarily block hyper 1. We will pursue the remaining hyper 1 changes and then make a decision on internal use of http and http-body pre 1.x usage. ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
## Motivation and Context <!--- Why is this change required? What problem does it solve? --> <!--- If it fixes an open issue, please link to the issue here --> * #3710 * #1925 * awslabs/aws-sdk-rust#977 ## Description Updates the default HTTPS client to be based off hyper 1.x, rustls, and aws-lc. See the GitHub discussion: awslabs/aws-sdk-rust#1257 This PR is a rollup of previously reviewed PRs: * Refactor the runtime structure and consolidate HTTP client implementation(s): [smithy-rs#3866](#3866) * Migrate HTTP test utils: [smithy-rs#3888](#3888) * Update runtime to use new test utils: [smithy-rs#3898](#3898) * Backport connection poisoning: [smithy-rs#3795](#3795) * Deprecate HTTP 02x presign APIs: [smithy-rs#3823](#3823) * Enable hyper1 as default client: [smithy-rs#]() * Enable hyper1 behind BMV:[smithy-rs#3973](#3973) * s2n-tls provider (by Sam): [smithy-rs#3965](#3965) * custom TLS config: [smithy-rs#4032](#4032) ## Testing <!--- Please describe in detail how you tested your changes --> <!--- Include details of your testing environment, and the tests you ran to --> <!--- see how your change affects other areas of the code, etc. --> ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [x] For changes to the smithy-rs codegen or runtime crates, I have created a changelog entry Markdown file in the `.changelog` directory, specifying "client," "server," or both in the `applies_to` key. - [x] For changes to the AWS SDK, generated SDK code, or SDK runtime crates, I have created a changelog entry Markdown file in the `.changelog` directory, specifying "aws-sdk-rust" in the `applies_to` key. ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: Sam Clark <[email protected]> Co-authored-by: Landon James <[email protected]>
Motivation and Context
Previous PR(s):
* #3866
Description
This PR migrates all of the HTTP related
test-util
feature to the newaws-smithy-http-client
crate.aws-smithy-runtime
. I've tried to ensure the feature gates line up correctly to what was there before. All existing code depending on thetest-util
feature compiles and runs still insmithy-rs
.test-util
code to be based onhyper-1 / http-1
.legacy_infallible::infallible_client_fn
andlegacy_capture_request
that I had to just duplicate with the legacy types to avoid a breaking change to them. These will be re-exported fromaws-smithy-runtime
as the original types but otherwise not be used going forward.Next steps:
test-util
APIs and update all of our usage oftest-util
to be based on the new API's inaws-smithy-http-client
. I may ask for team to help in this effort as it should be relatively straight forward migration work.Checklist
.changelog
directory, specifying "client," "server," or both in theapplies_to
key..changelog
directory, specifying "aws-sdk-rust" in theapplies_to
key.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.