Move httpclient to ecs-agent/ and minor refactor #3966
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Move httpclient package from agent module to ecs-agent module and also perform minor refactor of the same. This is required for future changes in ecs-agent module that depend on this package. If the httpclient package is not moved, then in the future a dependency cycle could be introduced in which the ecs-agent module depends on agent module while the agent module already depends on ecs-agent module.
Implementation details
agent/httpclient/
toecs-agent/httpclient/
ecs-agent/httpclient/httpclient.go
ecsRoundTripper
struct now has 2 new struct fieldsagentVersion
andosType
and relatedNew
function now takes in Agent version and OS type as arguments. This is so that we avoid making assumptions about the underlying Agent (i.e., this way, we do not need to take a dependency on theagent/version
andagent/config
packages)defaultTLSHandshakeTimeout
instead of a hardcoded valuedefaultDialTimeout
,defaultDialKeepalive
defaultTLSHandshakeTimeout
constant values come fromecsRoundTripper
transport'sDialContext
field in favor of itsDial
field, sincehttp.Transport.Dial
is deprecatedTesting
Unit, integration, and functional tests.
New tests cover the changes: no, but existing tests updated
Description for the changelog
Move httpclient to ecs-agent/ and minor refactor
Does this PR include breaking model changes? If so, Have you added transformation functions?
No
Licensing
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.