diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d56482c4a4..a3546cc73f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,14 @@ ### 🛑 Breaking changes 🛑 +- Change`confighttp.ToClient` to accept a `component.Host` (#5737) + ### 🚩 Deprecations 🚩 ### 💡 Enhancements 💡 - `ocb` now exits with an error if it fails to load the build configuration. (#5731) +- Deprecate `HTTPClientSettings.ToClientWithHost` (#5737) ### 🧰 Bug fixes 🧰 diff --git a/config/confighttp/confighttp.go b/config/confighttp/confighttp.go index 04f1d27880d..70e50e1a72e 100644 --- a/config/confighttp/confighttp.go +++ b/config/confighttp/confighttp.go @@ -27,7 +27,6 @@ import ( "golang.org/x/net/http2" "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/config/configauth" "go.opentelemetry.io/collector/config/configcompression" "go.opentelemetry.io/collector/config/configtls" @@ -99,8 +98,7 @@ func NewDefaultHTTPClientSettings() HTTPClientSettings { } // ToClient creates an HTTP client. -// Deprecated: [v0.55.0] Use ToClientWithHost instead. -func (hcs *HTTPClientSettings) ToClient(ext map[config.ComponentID]component.Extension, settings component.TelemetrySettings) (*http.Client, error) { +func (hcs *HTTPClientSettings) ToClient(host component.Host, settings component.TelemetrySettings) (*http.Client, error) { tlsCfg, err := hcs.TLSSetting.LoadTLSConfig() if err != nil { return nil, err @@ -156,6 +154,7 @@ func (hcs *HTTPClientSettings) ToClient(ext map[config.ComponentID]component.Ext } if hcs.Auth != nil { + ext := host.GetExtensions() if ext == nil { return nil, errors.New("extensions configuration not found") } @@ -184,9 +183,9 @@ func (hcs *HTTPClientSettings) ToClient(ext map[config.ComponentID]component.Ext }, nil } -// ToClientWithHost creates an HTTP client. +// Deprecated: [v0.57.0] use ToClient. func (hcs *HTTPClientSettings) ToClientWithHost(host component.Host, settings component.TelemetrySettings) (*http.Client, error) { - return hcs.ToClient(host.GetExtensions(), settings) + return hcs.ToClient(host, settings) } // Custom RoundTripper that adds headers. diff --git a/config/confighttp/confighttp_test.go b/config/confighttp/confighttp_test.go index 85548a522b8..d37e50d4aba 100644 --- a/config/confighttp/confighttp_test.go +++ b/config/confighttp/confighttp_test.go @@ -136,7 +136,7 @@ func TestAllHTTPClientSettings(t *testing.T) { t.Run(test.name, func(t *testing.T) { tt := componenttest.NewNopTelemetrySettings() tt.TracerProvider = nil - client, err := test.settings.ToClientWithHost(host, tt) + client, err := test.settings.ToClient(host, tt) if test.shouldError { assert.Error(t, err) return @@ -188,7 +188,7 @@ func TestPartialHTTPClientSettings(t *testing.T) { t.Run(test.name, func(t *testing.T) { tt := componenttest.NewNopTelemetrySettings() tt.TracerProvider = nil - client, err := test.settings.ToClientWithHost(host, tt) + client, err := test.settings.ToClient(host, tt) assert.NoError(t, err) transport := client.Transport.(*http.Transport) assert.EqualValues(t, 1024, transport.ReadBufferSize) @@ -252,7 +252,7 @@ func TestHTTPClientSettingsError(t *testing.T) { } for _, test := range tests { t.Run(test.err, func(t *testing.T) { - _, err := test.settings.ToClientWithHost(host, componenttest.NewNopTelemetrySettings()) + _, err := test.settings.ToClient(host, componenttest.NewNopTelemetrySettings()) assert.Regexp(t, test.err, err) }) } @@ -332,7 +332,7 @@ func TestHTTPClientSettingWithAuthConfig(t *testing.T) { } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - client, err := test.settings.ToClientWithHost(test.host, componenttest.NewNopTelemetrySettings()) + client, err := test.settings.ToClient(test.host, componenttest.NewNopTelemetrySettings()) if test.shouldErr { assert.Error(t, err) return @@ -558,7 +558,7 @@ func TestHttpReception(t *testing.T) { return rt, nil } } - client, errClient := hcs.ToClientWithHost(componenttest.NewNopHost(), component.TelemetrySettings{}) + client, errClient := hcs.ToClient(componenttest.NewNopHost(), component.TelemetrySettings{}) require.NoError(t, errClient) resp, errResp := client.Get(hcs.Endpoint) @@ -810,7 +810,7 @@ func TestHttpHeaders(t *testing.T) { "header1": "value1", }, } - client, _ := setting.ToClientWithHost(componenttest.NewNopHost(), componenttest.NewNopTelemetrySettings()) + client, _ := setting.ToClient(componenttest.NewNopHost(), componenttest.NewNopTelemetrySettings()) req, err := http.NewRequest("GET", setting.Endpoint, nil) assert.NoError(t, err) _, err = client.Do(req) @@ -1048,12 +1048,12 @@ func BenchmarkHttpRequest(b *testing.B) { b.Run(bb.name, func(b *testing.B) { var c *http.Client if !bb.clientPerThread { - c, err = hcs.ToClientWithHost(componenttest.NewNopHost(), component.TelemetrySettings{}) + c, err = hcs.ToClient(componenttest.NewNopHost(), component.TelemetrySettings{}) require.NoError(b, err) } b.RunParallel(func(pb *testing.PB) { if c == nil { - c, err = hcs.ToClientWithHost(componenttest.NewNopHost(), component.TelemetrySettings{}) + c, err = hcs.ToClient(componenttest.NewNopHost(), component.TelemetrySettings{}) require.NoError(b, err) } for pb.Next() { diff --git a/exporter/otlphttpexporter/otlp.go b/exporter/otlphttpexporter/otlp.go index 4498a80e632..e40fc0b3503 100644 --- a/exporter/otlphttpexporter/otlp.go +++ b/exporter/otlphttpexporter/otlp.go @@ -87,7 +87,7 @@ func newExporter(cfg config.Exporter, set component.ExporterCreateSettings) (*ex // start actually creates the HTTP client. The client construction is deferred till this point as this // is the only place we get hold of Extensions which are required to construct auth round tripper. func (e *exporter) start(_ context.Context, host component.Host) error { - client, err := e.config.HTTPClientSettings.ToClient(host.GetExtensions(), e.settings) + client, err := e.config.HTTPClientSettings.ToClient(host, e.settings) if err != nil { return err }