Skip to content

Commit ce298e4

Browse files
committed
Deprecate Unmarshal[*]Config in favor of UnmarshalConfig
Signed-off-by: Bogdan Drutu <[email protected]>
1 parent c914964 commit ce298e4

File tree

18 files changed

+59
-53
lines changed

18 files changed

+59
-53
lines changed

.chloggen/depunmarshal.yaml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
2+
change_type: deprecation
3+
4+
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
5+
component: component
6+
7+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
8+
note: Deprecate `component.Unmarshal[*]Config` in favor of `component.UnmarshalConfig`
9+
10+
# One or more tracking issues or pull requests related to the change
11+
issues: []

component/config.go

+11-8
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,17 @@ type Config interface {
3232
// for an interface type Foo is to use a *Foo value.
3333
var configValidatorType = reflect.TypeOf((*ConfigValidator)(nil)).Elem()
3434

35+
// UnmarshalConfig helper function to UnmarshalConfig a Config.
36+
// It checks if the config implements confmap.Unmarshaler and uses that if available,
37+
// otherwise uses Map.UnmarshalExact, erroring if a field is nonexistent.
38+
func UnmarshalConfig(conf *confmap.Conf, intoCfg Config) error {
39+
if cu, ok := intoCfg.(confmap.Unmarshaler); ok {
40+
return cu.Unmarshal(conf)
41+
}
42+
43+
return conf.Unmarshal(intoCfg, confmap.WithErrorUnused())
44+
}
45+
3546
// ConfigValidator defines an optional interface for configurations to implement to do validation.
3647
type ConfigValidator interface {
3748
// Validate the configuration and returns an error if invalid.
@@ -122,11 +133,3 @@ const (
122133
// DataTypeLogs is the data type tag for logs.
123134
DataTypeLogs DataType = "logs"
124135
)
125-
126-
func unmarshal(componentSection *confmap.Conf, intoCfg interface{}) error {
127-
if cu, ok := intoCfg.(confmap.Unmarshaler); ok {
128-
return cu.Unmarshal(componentSection)
129-
}
130-
131-
return componentSection.Unmarshal(intoCfg, confmap.WithErrorUnused())
132-
}

component/exporter.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,9 @@ type ExporterConfig interface {
2727
Config
2828
}
2929

30-
// UnmarshalExporterConfig helper function to unmarshal an ExporterConfig.
31-
// It checks if the config implements confmap.Unmarshaler and uses that if available,
32-
// otherwise uses Map.UnmarshalExact, erroring if a field is nonexistent.
30+
// Deprecated: [v0.67.0] use UnmarshalConfig.
3331
func UnmarshalExporterConfig(conf *confmap.Conf, cfg ExporterConfig) error {
34-
return unmarshal(conf, cfg)
32+
return UnmarshalConfig(conf, cfg)
3533
}
3634

3735
// TracesExporter is an Exporter that can consume traces.

component/extension.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,9 @@ type ExtensionConfig interface {
2626
Config
2727
}
2828

29-
// UnmarshalExtensionConfig helper function to unmarshal an ExtensionConfig.
30-
// It checks if the config implements confmap.Unmarshaler and uses that if available,
31-
// otherwise uses Map.UnmarshalExact, erroring if a field is nonexistent.
29+
// Deprecated: [v0.67.0] use UnmarshalConfig.
3230
func UnmarshalExtensionConfig(conf *confmap.Conf, cfg ExtensionConfig) error {
33-
return unmarshal(conf, cfg)
31+
return UnmarshalConfig(conf, cfg)
3432
}
3533

3634
// Extension is the interface for objects hosted by the OpenTelemetry Collector that

component/processor.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,9 @@ type ProcessorConfig interface {
2727
Config
2828
}
2929

30-
// UnmarshalProcessorConfig helper function to unmarshal a ProcessorConfig.
31-
// It checks if the config implements confmap.Unmarshaler and uses that if available,
32-
// otherwise uses Map.UnmarshalExact, erroring if a field is nonexistent.
30+
// Deprecated: [v0.67.0] use UnmarshalConfig.
3331
func UnmarshalProcessorConfig(conf *confmap.Conf, cfg ProcessorConfig) error {
34-
return unmarshal(conf, cfg)
32+
return UnmarshalConfig(conf, cfg)
3533
}
3634

3735
// TracesProcessor is a processor that can consume traces.

component/receiver.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,9 @@ type ReceiverConfig interface {
2727
Config
2828
}
2929

30-
// UnmarshalReceiverConfig helper function to unmarshal a ReceiverConfig.
31-
// It checks if the config implements confmap.Unmarshaler and uses that if available,
32-
// otherwise uses Map.UnmarshalExact, erroring if a field is nonexistent.
30+
// Deprecated: [v0.67.0] use UnmarshalConfig.
3331
func UnmarshalReceiverConfig(conf *confmap.Conf, cfg ReceiverConfig) error {
34-
return unmarshal(conf, cfg)
32+
return UnmarshalConfig(conf, cfg)
3533
}
3634

3735
// A TracesReceiver receives traces.

exporter/loggingexporter/config_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import (
3232
func TestUnmarshalDefaultConfig(t *testing.T) {
3333
factory := NewFactory()
3434
cfg := factory.CreateDefaultConfig()
35-
assert.NoError(t, component.UnmarshalExporterConfig(confmap.New(), cfg))
35+
assert.NoError(t, component.UnmarshalConfig(confmap.New(), cfg))
3636
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
3737
}
3838

@@ -86,7 +86,7 @@ func TestUnmarshalConfig(t *testing.T) {
8686
require.NoError(t, err)
8787
factory := NewFactory()
8888
cfg := factory.CreateDefaultConfig()
89-
err = component.UnmarshalExporterConfig(cm, cfg)
89+
err = component.UnmarshalConfig(cm, cfg)
9090
if tt.expectedErr != "" {
9191
assert.EqualError(t, err, tt.expectedErr)
9292
} else {

exporter/otlpexporter/config_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import (
3535
func TestUnmarshalDefaultConfig(t *testing.T) {
3636
factory := NewFactory()
3737
cfg := factory.CreateDefaultConfig()
38-
assert.NoError(t, component.UnmarshalExporterConfig(confmap.New(), cfg))
38+
assert.NoError(t, component.UnmarshalConfig(confmap.New(), cfg))
3939
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
4040
}
4141

@@ -44,7 +44,7 @@ func TestUnmarshalConfig(t *testing.T) {
4444
require.NoError(t, err)
4545
factory := NewFactory()
4646
cfg := factory.CreateDefaultConfig()
47-
assert.NoError(t, component.UnmarshalExporterConfig(cm, cfg))
47+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
4848
assert.Equal(t,
4949
&Config{
5050
ExporterSettings: config.NewExporterSettings(component.NewID(typeStr)),

exporter/otlphttpexporter/config_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import (
3434
func TestUnmarshalDefaultConfig(t *testing.T) {
3535
factory := NewFactory()
3636
cfg := factory.CreateDefaultConfig()
37-
assert.NoError(t, component.UnmarshalExporterConfig(confmap.New(), cfg))
37+
assert.NoError(t, component.UnmarshalConfig(confmap.New(), cfg))
3838
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
3939
// Default/Empty config is invalid.
4040
assert.Error(t, component.ValidateConfig(cfg))
@@ -45,7 +45,7 @@ func TestUnmarshalConfig(t *testing.T) {
4545
require.NoError(t, err)
4646
factory := NewFactory()
4747
cfg := factory.CreateDefaultConfig()
48-
assert.NoError(t, component.UnmarshalExporterConfig(cm, cfg))
48+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
4949
assert.Equal(t,
5050
&Config{
5151
ExporterSettings: config.NewExporterSettings(component.NewID(typeStr)),

extension/ballastextension/config_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030
func TestUnmarshalDefaultConfig(t *testing.T) {
3131
factory := NewFactory()
3232
cfg := factory.CreateDefaultConfig()
33-
assert.NoError(t, component.UnmarshalExtensionConfig(confmap.New(), cfg))
33+
assert.NoError(t, component.UnmarshalConfig(confmap.New(), cfg))
3434
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
3535
}
3636

@@ -39,7 +39,7 @@ func TestUnmarshalConfig(t *testing.T) {
3939
require.NoError(t, err)
4040
factory := NewFactory()
4141
cfg := factory.CreateDefaultConfig()
42-
assert.NoError(t, component.UnmarshalExtensionConfig(cm, cfg))
42+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
4343
assert.Equal(t,
4444
&Config{
4545
ExtensionSettings: config.NewExtensionSettings(component.NewID(typeStr)),

extension/zpagesextension/config_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import (
3131
func TestUnmarshalDefaultConfig(t *testing.T) {
3232
factory := NewFactory()
3333
cfg := factory.CreateDefaultConfig()
34-
assert.NoError(t, component.UnmarshalExtensionConfig(confmap.New(), cfg))
34+
assert.NoError(t, component.UnmarshalConfig(confmap.New(), cfg))
3535
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
3636
}
3737

@@ -40,7 +40,7 @@ func TestUnmarshalConfig(t *testing.T) {
4040
require.NoError(t, err)
4141
factory := NewFactory()
4242
cfg := factory.CreateDefaultConfig()
43-
assert.NoError(t, component.UnmarshalExtensionConfig(cm, cfg))
43+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
4444
assert.Equal(t,
4545
&Config{
4646
ExtensionSettings: config.NewExtensionSettings(component.NewID(typeStr)),

processor/batchprocessor/config_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import (
3131
func TestUnmarshalDefaultConfig(t *testing.T) {
3232
factory := NewFactory()
3333
cfg := factory.CreateDefaultConfig()
34-
assert.NoError(t, component.UnmarshalProcessorConfig(confmap.New(), cfg))
34+
assert.NoError(t, component.UnmarshalConfig(confmap.New(), cfg))
3535
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
3636
}
3737

@@ -40,7 +40,7 @@ func TestUnmarshalConfig(t *testing.T) {
4040
require.NoError(t, err)
4141
factory := NewFactory()
4242
cfg := factory.CreateDefaultConfig()
43-
assert.NoError(t, component.UnmarshalProcessorConfig(cm, cfg))
43+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
4444
assert.Equal(t,
4545
&Config{
4646
ProcessorSettings: config.NewProcessorSettings(component.NewID(typeStr)),

processor/memorylimiterprocessor/config_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import (
3131
func TestUnmarshalDefaultConfig(t *testing.T) {
3232
factory := NewFactory()
3333
cfg := factory.CreateDefaultConfig()
34-
assert.NoError(t, component.UnmarshalProcessorConfig(confmap.New(), cfg))
34+
assert.NoError(t, component.UnmarshalConfig(confmap.New(), cfg))
3535
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
3636
}
3737

@@ -40,7 +40,7 @@ func TestUnmarshalConfig(t *testing.T) {
4040
require.NoError(t, err)
4141
factory := NewFactory()
4242
cfg := factory.CreateDefaultConfig()
43-
assert.NoError(t, component.UnmarshalProcessorConfig(cm, cfg))
43+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
4444
assert.Equal(t,
4545
&Config{
4646
ProcessorSettings: config.NewProcessorSettings(component.NewID(typeStr)),

receiver/otlpreceiver/config_test.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func TestUnmarshalDefaultConfig(t *testing.T) {
3737
require.NoError(t, err)
3838
factory := NewFactory()
3939
cfg := factory.CreateDefaultConfig()
40-
assert.NoError(t, component.UnmarshalReceiverConfig(cm, cfg))
40+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
4141
assert.Equal(t, factory.CreateDefaultConfig(), cfg)
4242
}
4343

@@ -46,7 +46,7 @@ func TestUnmarshalConfigOnlyGRPC(t *testing.T) {
4646
require.NoError(t, err)
4747
factory := NewFactory()
4848
cfg := factory.CreateDefaultConfig()
49-
assert.NoError(t, component.UnmarshalReceiverConfig(cm, cfg))
49+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
5050

5151
defaultOnlyGRPC := factory.CreateDefaultConfig().(*Config)
5252
defaultOnlyGRPC.HTTP = nil
@@ -58,7 +58,7 @@ func TestUnmarshalConfigOnlyHTTP(t *testing.T) {
5858
require.NoError(t, err)
5959
factory := NewFactory()
6060
cfg := factory.CreateDefaultConfig()
61-
assert.NoError(t, component.UnmarshalReceiverConfig(cm, cfg))
61+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
6262

6363
defaultOnlyHTTP := factory.CreateDefaultConfig().(*Config)
6464
defaultOnlyHTTP.GRPC = nil
@@ -70,7 +70,7 @@ func TestUnmarshalConfigOnlyHTTPNull(t *testing.T) {
7070
require.NoError(t, err)
7171
factory := NewFactory()
7272
cfg := factory.CreateDefaultConfig()
73-
assert.NoError(t, component.UnmarshalReceiverConfig(cm, cfg))
73+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
7474

7575
defaultOnlyHTTP := factory.CreateDefaultConfig().(*Config)
7676
defaultOnlyHTTP.GRPC = nil
@@ -82,7 +82,7 @@ func TestUnmarshalConfigOnlyHTTPEmptyMap(t *testing.T) {
8282
require.NoError(t, err)
8383
factory := NewFactory()
8484
cfg := factory.CreateDefaultConfig()
85-
assert.NoError(t, component.UnmarshalReceiverConfig(cm, cfg))
85+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
8686

8787
defaultOnlyHTTP := factory.CreateDefaultConfig().(*Config)
8888
defaultOnlyHTTP.GRPC = nil
@@ -94,7 +94,7 @@ func TestUnmarshalConfig(t *testing.T) {
9494
require.NoError(t, err)
9595
factory := NewFactory()
9696
cfg := factory.CreateDefaultConfig()
97-
assert.NoError(t, component.UnmarshalReceiverConfig(cm, cfg))
97+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
9898
assert.Equal(t,
9999
&Config{
100100
ReceiverSettings: config.NewReceiverSettings(component.NewID(typeStr)),
@@ -151,7 +151,7 @@ func TestUnmarshalConfigUnix(t *testing.T) {
151151
require.NoError(t, err)
152152
factory := NewFactory()
153153
cfg := factory.CreateDefaultConfig()
154-
assert.NoError(t, component.UnmarshalReceiverConfig(cm, cfg))
154+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
155155
assert.Equal(t,
156156
&Config{
157157
ReceiverSettings: config.NewReceiverSettings(component.NewID(typeStr)),
@@ -176,29 +176,29 @@ func TestUnmarshalConfigTypoDefaultProtocol(t *testing.T) {
176176
require.NoError(t, err)
177177
factory := NewFactory()
178178
cfg := factory.CreateDefaultConfig()
179-
assert.EqualError(t, component.UnmarshalReceiverConfig(cm, cfg), "1 error(s) decoding:\n\n* 'protocols' has invalid keys: htttp")
179+
assert.EqualError(t, component.UnmarshalConfig(cm, cfg), "1 error(s) decoding:\n\n* 'protocols' has invalid keys: htttp")
180180
}
181181

182182
func TestUnmarshalConfigInvalidProtocol(t *testing.T) {
183183
cm, err := confmaptest.LoadConf(filepath.Join("testdata", "bad_proto_config.yaml"))
184184
require.NoError(t, err)
185185
factory := NewFactory()
186186
cfg := factory.CreateDefaultConfig()
187-
assert.EqualError(t, component.UnmarshalReceiverConfig(cm, cfg), "1 error(s) decoding:\n\n* 'protocols' has invalid keys: thrift")
187+
assert.EqualError(t, component.UnmarshalConfig(cm, cfg), "1 error(s) decoding:\n\n* 'protocols' has invalid keys: thrift")
188188
}
189189

190190
func TestUnmarshalConfigEmptyProtocols(t *testing.T) {
191191
cm, err := confmaptest.LoadConf(filepath.Join("testdata", "bad_no_proto_config.yaml"))
192192
require.NoError(t, err)
193193
factory := NewFactory()
194194
cfg := factory.CreateDefaultConfig()
195-
assert.NoError(t, component.UnmarshalReceiverConfig(cm, cfg))
195+
assert.NoError(t, component.UnmarshalConfig(cm, cfg))
196196
assert.EqualError(t, component.ValidateConfig(cfg), "must specify at least one protocol when using the OTLP receiver")
197197
}
198198

199199
func TestUnmarshalConfigEmpty(t *testing.T) {
200200
factory := NewFactory()
201201
cfg := factory.CreateDefaultConfig()
202-
assert.NoError(t, component.UnmarshalReceiverConfig(confmap.New(), cfg))
202+
assert.NoError(t, component.UnmarshalConfig(confmap.New(), cfg))
203203
assert.EqualError(t, component.ValidateConfig(cfg), "must specify at least one protocol when using the OTLP receiver")
204204
}

service/internal/configunmarshaler/exporters.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func (e *Exporters) Unmarshal(conf *confmap.Conf) error {
5757

5858
// Now that the default config struct is created we can Unmarshal into it,
5959
// and it will apply user-defined config on top of the default.
60-
if err := component.UnmarshalExporterConfig(confmap.NewFromStringMap(value), exporterCfg); err != nil {
60+
if err := component.UnmarshalConfig(confmap.NewFromStringMap(value), exporterCfg); err != nil {
6161
return errorUnmarshalError(exportersKeyName, id, err)
6262
}
6363

service/internal/configunmarshaler/extensions.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func (e *Extensions) Unmarshal(conf *confmap.Conf) error {
5757

5858
// Now that the default config struct is created we can Unmarshal into it,
5959
// and it will apply user-defined config on top of the default.
60-
if err := component.UnmarshalExtensionConfig(confmap.NewFromStringMap(value), extensionCfg); err != nil {
60+
if err := component.UnmarshalConfig(confmap.NewFromStringMap(value), extensionCfg); err != nil {
6161
return errorUnmarshalError(extensionsKeyName, id, err)
6262
}
6363

service/internal/configunmarshaler/processors.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (p *Processors) Unmarshal(conf *confmap.Conf) error {
5656

5757
// Now that the default config struct is created we can Unmarshal into it,
5858
// and it will apply user-defined config on top of the default.
59-
if err := component.UnmarshalProcessorConfig(confmap.NewFromStringMap(value), processorCfg); err != nil {
59+
if err := component.UnmarshalConfig(confmap.NewFromStringMap(value), processorCfg); err != nil {
6060
return errorUnmarshalError(processorsKeyName, id, err)
6161
}
6262

service/internal/configunmarshaler/receivers.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func (r *Receivers) Unmarshal(conf *confmap.Conf) error {
5757

5858
// Now that the default config struct is created we can Unmarshal into it,
5959
// and it will apply user-defined config on top of the default.
60-
if err := component.UnmarshalReceiverConfig(confmap.NewFromStringMap(value), receiverCfg); err != nil {
60+
if err := component.UnmarshalConfig(confmap.NewFromStringMap(value), receiverCfg); err != nil {
6161
return errorUnmarshalError(receiversKeyName, id, err)
6262
}
6363

0 commit comments

Comments
 (0)