Skip to content

Commit 419d58c

Browse files
committed
fix: influxdbexporter init panics
Closes open-telemetry#27084
1 parent 1d886ea commit 419d58c

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

exporter/influxdbexporter/writer.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,21 @@ func composeWriteURL(config *Config) (string, error) {
8888
queryValues.Set("db", config.V1Compatibility.DB)
8989

9090
if config.V1Compatibility.Username != "" && config.V1Compatibility.Password != "" {
91-
var basicAuth []byte
92-
base64.StdEncoding.Encode(basicAuth, []byte(config.V1Compatibility.Username+":"+string(config.V1Compatibility.Password)))
93-
config.HTTPClientSettings.Headers["Authorization"] = configopaque.String("Basic " + string(basicAuth))
91+
basicAuth := base64.StdEncoding.EncodeToString(
92+
[]byte(config.V1Compatibility.Username + ":" + string(config.V1Compatibility.Password)))
93+
if config.HTTPClientSettings.Headers == nil {
94+
config.HTTPClientSettings.Headers = make(map[string]configopaque.String, 1)
95+
}
96+
config.HTTPClientSettings.Headers["Authorization"] = configopaque.String("Basic " + basicAuth)
9497
}
9598
} else {
9699
queryValues.Set("org", config.Org)
97100
queryValues.Set("bucket", config.Bucket)
98101

99102
if config.Token != "" {
103+
if config.HTTPClientSettings.Headers == nil {
104+
config.HTTPClientSettings.Headers = make(map[string]configopaque.String, 1)
105+
}
100106
config.HTTPClientSettings.Headers["Authorization"] = "Token " + config.Token
101107
}
102108
}

exporter/influxdbexporter/writer_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,24 @@ func Test_influxHTTPWriterBatch_EnqueuePoint_emptyTagValue(t *testing.T) {
186186
assert.Equal(t, "m,k=v f=1i 1000000002000", strings.TrimSpace(string(recordedRequestBody)))
187187
}
188188
}
189+
190+
func Test_composeWriteURL_doesNotPanic(t *testing.T) {
191+
assert.NotPanics(t, func() {
192+
cfg := &Config{}
193+
_, err := composeWriteURL(cfg)
194+
assert.NoError(t, err)
195+
})
196+
197+
assert.NotPanics(t, func() {
198+
cfg := &Config{
199+
V1Compatibility: V1Compatibility{
200+
Enabled: true,
201+
DB: "my-db",
202+
Username: "my-username",
203+
Password: "my-password",
204+
},
205+
}
206+
_, err := composeWriteURL(cfg)
207+
assert.NoError(t, err)
208+
})
209+
}

0 commit comments

Comments
 (0)