Skip to content

Commit 2e12920

Browse files
committed
Remove isEnabled from the config model interface
Signed-off-by: Bogdan Drutu <[email protected]>
1 parent 24c1569 commit 2e12920

25 files changed

+85
-393
lines changed

config/config.go

Lines changed: 15 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -599,11 +599,11 @@ func ValidateConfig(cfg *configmodels.Config, logger *zap.Logger) error {
599599
// invalid cases that we currently don't check for but which we may want to add in
600600
// the future (e.g. disallowing receiving and exporting on the same endpoint).
601601

602-
if err := validateService(cfg, logger); err != nil {
602+
if err := validateService(cfg); err != nil {
603603
return err
604604
}
605605

606-
if err := validatePipelines(cfg, logger); err != nil {
606+
if err := validatePipelines(cfg); err != nil {
607607
return err
608608
}
609609

@@ -613,22 +613,17 @@ func ValidateConfig(cfg *configmodels.Config, logger *zap.Logger) error {
613613
if err := validateExporters(cfg); err != nil {
614614
return err
615615
}
616-
validateProcessors(cfg)
617616

618617
return nil
619618
}
620619

621-
func validateService(cfg *configmodels.Config, logger *zap.Logger) error {
620+
func validateService(cfg *configmodels.Config) error {
622621
// Currently only to validate extensions.
623-
return validateServiceExtensions(cfg, &cfg.Service, logger)
622+
return validateServiceExtensions(cfg, &cfg.Service)
624623
}
625624

626-
func validateServiceExtensions(
627-
cfg *configmodels.Config,
628-
service *configmodels.Service,
629-
logger *zap.Logger,
630-
) error {
631-
if len(cfg.Service.Extensions) < 1 {
625+
func validateServiceExtensions(cfg *configmodels.Config, service *configmodels.Service) error {
626+
if len(cfg.Service.Extensions) == 0 {
632627
return nil
633628
}
634629

@@ -643,64 +638,41 @@ func validateServiceExtensions(
643638
}
644639
}
645640

646-
// Remove disabled extensions.
647-
extensions := service.Extensions[:0]
648-
for _, ref := range service.Extensions {
649-
ext := cfg.Extensions[ref]
650-
if ext.IsEnabled() {
651-
// The extension is enabled. Keep it in the pipeline.
652-
extensions = append(extensions, ref)
653-
} else {
654-
logger.Info("service references a disabled extension. Ignoring the extension.",
655-
zap.String("extension", ref))
656-
}
657-
}
658-
659-
service.Extensions = extensions
660-
661641
return nil
662642
}
663643

664-
func validatePipelines(cfg *configmodels.Config, logger *zap.Logger) error {
644+
func validatePipelines(cfg *configmodels.Config) error {
665645
// Must have at least one pipeline.
666646
if len(cfg.Service.Pipelines) < 1 {
667647
return &configError{code: errMissingPipelines, msg: "must have at least one pipeline"}
668648
}
669649

670650
// Validate pipelines.
671651
for _, pipeline := range cfg.Service.Pipelines {
672-
if err := validatePipeline(cfg, pipeline, logger); err != nil {
652+
if err := validatePipeline(cfg, pipeline); err != nil {
673653
return err
674654
}
675655
}
676656
return nil
677657
}
678658

679-
func validatePipeline(
680-
cfg *configmodels.Config,
681-
pipeline *configmodels.Pipeline,
682-
logger *zap.Logger,
683-
) error {
684-
if err := validatePipelineReceivers(cfg, pipeline, logger); err != nil {
659+
func validatePipeline(cfg *configmodels.Config, pipeline *configmodels.Pipeline) error {
660+
if err := validatePipelineReceivers(cfg, pipeline); err != nil {
685661
return err
686662
}
687663

688-
if err := validatePipelineExporters(cfg, pipeline, logger); err != nil {
664+
if err := validatePipelineExporters(cfg, pipeline); err != nil {
689665
return err
690666
}
691667

692-
if err := validatePipelineProcessors(cfg, pipeline, logger); err != nil {
668+
if err := validatePipelineProcessors(cfg, pipeline); err != nil {
693669
return err
694670
}
695671

696672
return nil
697673
}
698674

699-
func validatePipelineReceivers(
700-
cfg *configmodels.Config,
701-
pipeline *configmodels.Pipeline,
702-
logger *zap.Logger,
703-
) error {
675+
func validatePipelineReceivers(cfg *configmodels.Config, pipeline *configmodels.Pipeline) error {
704676
if len(pipeline.Receivers) == 0 {
705677
return &configError{
706678
code: errPipelineMustHaveReceiver,
@@ -719,30 +691,10 @@ func validatePipelineReceivers(
719691
}
720692
}
721693

722-
// Remove disabled receivers.
723-
rs := pipeline.Receivers[:0]
724-
for _, ref := range pipeline.Receivers {
725-
rcv := cfg.Receivers[ref]
726-
if rcv.IsEnabled() {
727-
// The receiver is enabled. Keep it in the pipeline.
728-
rs = append(rs, ref)
729-
} else {
730-
logger.Info("pipeline references a disabled receiver. Ignoring the receiver.",
731-
zap.String("pipeline", pipeline.Name),
732-
zap.String("receiver", ref))
733-
}
734-
}
735-
736-
pipeline.Receivers = rs
737-
738694
return nil
739695
}
740696

741-
func validatePipelineExporters(
742-
cfg *configmodels.Config,
743-
pipeline *configmodels.Pipeline,
744-
logger *zap.Logger,
745-
) error {
697+
func validatePipelineExporters(cfg *configmodels.Config, pipeline *configmodels.Pipeline) error {
746698
if len(pipeline.Exporters) == 0 {
747699
return &configError{
748700
code: errPipelineMustHaveExporter,
@@ -761,29 +713,10 @@ func validatePipelineExporters(
761713
}
762714
}
763715

764-
// Remove disabled exporters.
765-
rs := pipeline.Exporters[:0]
766-
for _, ref := range pipeline.Exporters {
767-
exp := cfg.Exporters[ref]
768-
if exp.IsEnabled() {
769-
// The exporter is enabled. Keep it in the pipeline.
770-
rs = append(rs, ref)
771-
} else {
772-
logger.Info("pipeline references a disabled exporter. Ignoring the exporter.",
773-
zap.String("pipeline", pipeline.Name),
774-
zap.String("exporter", ref))
775-
}
776-
}
777-
pipeline.Exporters = rs
778-
779716
return nil
780717
}
781718

782-
func validatePipelineProcessors(
783-
cfg *configmodels.Config,
784-
pipeline *configmodels.Pipeline,
785-
logger *zap.Logger,
786-
) error {
719+
func validatePipelineProcessors(cfg *configmodels.Config, pipeline *configmodels.Pipeline) error {
787720
if len(pipeline.Processors) == 0 {
788721
return nil
789722
}
@@ -799,32 +732,10 @@ func validatePipelineProcessors(
799732
}
800733
}
801734

802-
// Remove disabled processors.
803-
rs := pipeline.Processors[:0]
804-
for _, ref := range pipeline.Processors {
805-
proc := cfg.Processors[ref]
806-
if proc.IsEnabled() {
807-
// The processor is enabled. Keep it in the pipeline.
808-
rs = append(rs, ref)
809-
} else {
810-
logger.Info("pipeline references a disabled processor. Ignoring the processor.",
811-
zap.String("pipeline", pipeline.Name),
812-
zap.String("processor", ref))
813-
}
814-
}
815-
pipeline.Processors = rs
816-
817735
return nil
818736
}
819737

820738
func validateReceivers(cfg *configmodels.Config) error {
821-
// Remove disabled receivers.
822-
for name, rcv := range cfg.Receivers {
823-
if !rcv.IsEnabled() {
824-
delete(cfg.Receivers, name)
825-
}
826-
}
827-
828739
// Currently there is no default receiver enabled. The configuration must specify at least one enabled receiver to
829740
// be valid.
830741
if len(cfg.Receivers) == 0 {
@@ -837,13 +748,6 @@ func validateReceivers(cfg *configmodels.Config) error {
837748
}
838749

839750
func validateExporters(cfg *configmodels.Config) error {
840-
// Remove disabled exporters.
841-
for name, rcv := range cfg.Exporters {
842-
if !rcv.IsEnabled() {
843-
delete(cfg.Exporters, name)
844-
}
845-
}
846-
847751
// There must be at least one enabled exporter to be considered a valid configuration.
848752
if len(cfg.Exporters) == 0 {
849753
return &configError{
@@ -854,15 +758,6 @@ func validateExporters(cfg *configmodels.Config) error {
854758
return nil
855759
}
856760

857-
func validateProcessors(cfg *configmodels.Config) {
858-
// Remove disabled processors.
859-
for name, rcv := range cfg.Processors {
860-
if !rcv.IsEnabled() {
861-
delete(cfg.Processors, name)
862-
}
863-
}
864-
}
865-
866761
// expandEnvConfig creates a new viper config with expanded values for all the values (simple, list or map value).
867762
// It does not expand the keys.
868763
func expandEnvConfig(v *viper.Viper) {

config/config_test.go

Lines changed: 37 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ func TestDecodeConfig(t *testing.T) {
3636

3737
// Verify extensions.
3838
assert.Equal(t, 3, len(config.Extensions))
39-
assert.False(t, config.Extensions["exampleextension/disabled"].IsEnabled())
4039
assert.Equal(t, "some string", config.Extensions["exampleextension/1"].(*ExampleExtensionCfg).ExtraSetting)
4140

4241
// Verify service.
@@ -137,57 +136,57 @@ func TestSimpleConfig(t *testing.T) {
137136
const extensionExtra = "some extension string"
138137
const extensionExtraMapValue = "some extension map value"
139138
const extensionExtraListElement = "some extension list value"
140-
os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA", extensionExtra)
141-
os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_MAP_EXT_VALUE_1", extensionExtraMapValue+"_1")
142-
os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_MAP_EXT_VALUE_2", extensionExtraMapValue+"_2")
143-
os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_LIST_VALUE_1", extensionExtraListElement+"_1")
144-
os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_LIST_VALUE_2", extensionExtraListElement+"_2")
139+
assert.NoError(t, os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA", extensionExtra))
140+
assert.NoError(t, os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_MAP_EXT_VALUE_1", extensionExtraMapValue+"_1"))
141+
assert.NoError(t, os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_MAP_EXT_VALUE_2", extensionExtraMapValue+"_2"))
142+
assert.NoError(t, os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_LIST_VALUE_1", extensionExtraListElement+"_1"))
143+
assert.NoError(t, os.Setenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_LIST_VALUE_2", extensionExtraListElement+"_2"))
145144

146145
const receiverExtra = "some receiver string"
147146
const receiverExtraMapValue = "some receiver map value"
148147
const receiverExtraListElement = "some receiver list value"
149-
os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA", receiverExtra)
150-
os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_MAP_RECV_VALUE_1", receiverExtraMapValue+"_1")
151-
os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_MAP_RECV_VALUE_2", receiverExtraMapValue+"_2")
152-
os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_LIST_VALUE_1", receiverExtraListElement+"_1")
153-
os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_LIST_VALUE_2", receiverExtraListElement+"_2")
148+
assert.NoError(t, os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA", receiverExtra))
149+
assert.NoError(t, os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_MAP_RECV_VALUE_1", receiverExtraMapValue+"_1"))
150+
assert.NoError(t, os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_MAP_RECV_VALUE_2", receiverExtraMapValue+"_2"))
151+
assert.NoError(t, os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_LIST_VALUE_1", receiverExtraListElement+"_1"))
152+
assert.NoError(t, os.Setenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_LIST_VALUE_2", receiverExtraListElement+"_2"))
154153

155154
const processorExtra = "some processor string"
156155
const processorExtraMapValue = "some processor map value"
157156
const processorExtraListElement = "some processor list value"
158-
os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA", processorExtra)
159-
os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_MAP_PROC_VALUE_1", processorExtraMapValue+"_1")
160-
os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_MAP_PROC_VALUE_2", processorExtraMapValue+"_2")
161-
os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_LIST_VALUE_1", processorExtraListElement+"_1")
162-
os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_LIST_VALUE_2", processorExtraListElement+"_2")
157+
assert.NoError(t, os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA", processorExtra))
158+
assert.NoError(t, os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_MAP_PROC_VALUE_1", processorExtraMapValue+"_1"))
159+
assert.NoError(t, os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_MAP_PROC_VALUE_2", processorExtraMapValue+"_2"))
160+
assert.NoError(t, os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_LIST_VALUE_1", processorExtraListElement+"_1"))
161+
assert.NoError(t, os.Setenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_LIST_VALUE_2", processorExtraListElement+"_2"))
163162

164163
const exporterExtra = "some exporter string"
165164
const exporterExtraMapValue = "some exporter map value"
166165
const exporterExtraListElement = "some exporter list value"
167-
os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_INT", "65")
168-
os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA", exporterExtra)
169-
os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_MAP_EXP_VALUE_1", exporterExtraMapValue+"_1")
170-
os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_MAP_EXP_VALUE_2", exporterExtraMapValue+"_2")
171-
os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_LIST_VALUE_1", exporterExtraListElement+"_1")
172-
os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_LIST_VALUE_2", exporterExtraListElement+"_2")
166+
assert.NoError(t, os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_INT", "65"))
167+
assert.NoError(t, os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA", exporterExtra))
168+
assert.NoError(t, os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_MAP_EXP_VALUE_1", exporterExtraMapValue+"_1"))
169+
assert.NoError(t, os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_MAP_EXP_VALUE_2", exporterExtraMapValue+"_2"))
170+
assert.NoError(t, os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_LIST_VALUE_1", exporterExtraListElement+"_1"))
171+
assert.NoError(t, os.Setenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_LIST_VALUE_2", exporterExtraListElement+"_2"))
173172

174173
defer func() {
175-
os.Unsetenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA")
176-
os.Unsetenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_MAP_EXT_VALUE")
177-
os.Unsetenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_LIST_VALUE_1")
178-
179-
os.Unsetenv("RECEIVERS_EXAMPLERECEIVER_EXTRA")
180-
os.Unsetenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_MAP_RECV_VALUE")
181-
os.Unsetenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_LIST_VALUE_1")
182-
183-
os.Unsetenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA")
184-
os.Unsetenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_MAP_PROC_VALUE")
185-
os.Unsetenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_LIST_VALUE_1")
186-
187-
os.Unsetenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_INT")
188-
os.Unsetenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA")
189-
os.Unsetenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_MAP_EXP_VALUE")
190-
os.Unsetenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_LIST_VALUE_1")
174+
assert.NoError(t, os.Unsetenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA"))
175+
assert.NoError(t, os.Unsetenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_MAP_EXT_VALUE"))
176+
assert.NoError(t, os.Unsetenv("EXTENSIONS_EXAMPLEEXTENSION_EXTRA_LIST_VALUE_1"))
177+
178+
assert.NoError(t, os.Unsetenv("RECEIVERS_EXAMPLERECEIVER_EXTRA"))
179+
assert.NoError(t, os.Unsetenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_MAP_RECV_VALUE"))
180+
assert.NoError(t, os.Unsetenv("RECEIVERS_EXAMPLERECEIVER_EXTRA_LIST_VALUE_1"))
181+
182+
assert.NoError(t, os.Unsetenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA"))
183+
assert.NoError(t, os.Unsetenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_MAP_PROC_VALUE"))
184+
assert.NoError(t, os.Unsetenv("PROCESSORS_EXAMPLEPROCESSOR_EXTRA_LIST_VALUE_1"))
185+
186+
assert.NoError(t, os.Unsetenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_INT"))
187+
assert.NoError(t, os.Unsetenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA"))
188+
assert.NoError(t, os.Unsetenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_MAP_EXP_VALUE"))
189+
assert.NoError(t, os.Unsetenv("EXPORTERS_EXAMPLEEXPORTER_EXTRA_LIST_VALUE_1"))
191190
}()
192191

193192
for _, test := range testCases {
@@ -203,7 +202,6 @@ func TestSimpleConfig(t *testing.T) {
203202

204203
// Verify extensions.
205204
assert.Equalf(t, 1, len(config.Extensions), "TEST[%s]", test.name)
206-
assert.Truef(t, config.Extensions["exampleextension"].IsEnabled(), "TEST[%s]", test.name)
207205
assert.Equalf(t,
208206
&ExampleExtensionCfg{
209207
ExtensionSettings: configmodels.ExtensionSettings{
@@ -223,7 +221,6 @@ func TestSimpleConfig(t *testing.T) {
223221

224222
// Verify receivers
225223
assert.Equalf(t, 1, len(config.Receivers), "TEST[%s]", test.name)
226-
assert.Truef(t, config.Receivers["examplereceiver"].IsEnabled(), "TEST[%s]", test.name)
227224

228225
assert.Equalf(t,
229226
&ExampleReceiver{
@@ -241,7 +238,6 @@ func TestSimpleConfig(t *testing.T) {
241238

242239
// Verify exporters
243240
assert.Equalf(t, 1, len(config.Exporters), "TEST[%s]", test.name)
244-
assert.Truef(t, config.Exporters["exampleexporter"].IsEnabled(), "TEST[%s]", test.name)
245241

246242
assert.Equalf(t,
247243
&ExampleExporter{
@@ -259,7 +255,6 @@ func TestSimpleConfig(t *testing.T) {
259255

260256
// Verify Processors
261257
assert.Equalf(t, 1, len(config.Processors), "TEST[%s]", test.name)
262-
assert.Truef(t, config.Processors["exampleprocessor"].IsEnabled(), "TEST[%s]", test.name)
263258

264259
assert.Equalf(t,
265260
&ExampleProcessor{
@@ -348,8 +343,6 @@ func TestDecodeConfig_Invalid(t *testing.T) {
348343
}{
349344
{name: "empty-config"},
350345
{name: "missing-all-sections"},
351-
{name: "missing-enabled-exporters", expected: errMissingExporters},
352-
{name: "missing-enabled-receivers", expected: errMissingReceivers},
353346
{name: "missing-exporters", expected: errMissingExporters},
354347
{name: "missing-receivers", expected: errMissingReceivers},
355348
{name: "missing-processors"},
@@ -370,12 +363,8 @@ func TestDecodeConfig_Invalid(t *testing.T) {
370363
{name: "unknown-receiver-type", expected: errUnknownReceiverType},
371364
{name: "unknown-exporter-type", expected: errUnknownExporterType},
372365
{name: "unknown-processor-type", expected: errUnknownProcessorType},
373-
{name: "invalid-extension-disabled-value", expected: errUnmarshalErrorOnExtension},
374366
{name: "invalid-service-extensions-value", expected: errUnmarshalErrorOnService},
375-
{name: "invalid-bool-value", expected: errUnmarshalErrorOnProcessor},
376367
{name: "invalid-sequence-value", expected: errUnmarshalErrorOnPipeline},
377-
{name: "invalid-disabled-bool-value", expected: errUnmarshalErrorOnExporter},
378-
{name: "invalid-disabled-bool-value2", expected: errUnmarshalErrorOnReceiver},
379368
{name: "invalid-pipeline-type", expected: errInvalidPipelineType},
380369
{name: "invalid-pipeline-type-and-name", expected: errInvalidTypeAndNameKey},
381370
{name: "duplicate-extension", expected: errDuplicateExtensionName},

0 commit comments

Comments
 (0)