Skip to content

Commit c121075

Browse files
committed
Handle Kafka Broker addresses as string instead of slice
1 parent 68803c2 commit c121075

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

clowder/clowder_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ func TestUseBrokerConfigMultipleKafkaBrokers(t *testing.T) {
152152
}
153153

154154
clowder.UseBrokerConfig(&brokerCfg, &loadedConfig)
155-
assert.Equal(t, []string{fmt.Sprintf("%s:%d", addr1, port), addr2}, brokerCfg.Addresses)
155+
assert.Equal(t, fmt.Sprintf("%s:%d,%s", addr1, port, addr2), brokerCfg.Addresses)
156156
}
157157

158158
func TestUseBrokerConfigNoAuthNoPort(t *testing.T) {
@@ -170,7 +170,7 @@ func TestUseBrokerConfigNoAuthNoPort(t *testing.T) {
170170
}
171171

172172
clowder.UseBrokerConfig(&brokerCfg, &loadedConfig)
173-
assert.Equal(t, []string{addr}, brokerCfg.Addresses)
173+
assert.Equal(t, addr, brokerCfg.Addresses)
174174
}
175175

176176
func TestUseBrokerConfigNoAuth(t *testing.T) {
@@ -189,7 +189,7 @@ func TestUseBrokerConfigNoAuth(t *testing.T) {
189189
}
190190

191191
clowder.UseBrokerConfig(&brokerCfg, &loadedConfig)
192-
assert.Equal(t, []string{fmt.Sprintf("%s:%d", addr, port)}, brokerCfg.Addresses)
192+
assert.Equal(t, fmt.Sprintf("%s:%d", addr, port), brokerCfg.Addresses)
193193
}
194194

195195
func TestUseBrokerConfigAuthEnabledNoSasl(t *testing.T) {
@@ -213,7 +213,7 @@ func TestUseBrokerConfigAuthEnabledNoSasl(t *testing.T) {
213213
clowder.UseBrokerConfig(&brokerCfg, &loadedConfig)
214214
})
215215

216-
assert.Equal(t, []string{fmt.Sprintf("%s:%d", addr, port)}, brokerCfg.Addresses)
216+
assert.Equal(t, fmt.Sprintf("%s:%d", addr, port), brokerCfg.Addresses)
217217
assert.Contains(t, output, clowder.NoSaslCfg)
218218
}
219219

@@ -262,7 +262,7 @@ func TestUseBrokerConfigAuthEnabledWithSaslConfig(t *testing.T) {
262262
clowder.UseBrokerConfig(&brokerCfg, &loadedConfig)
263263
})
264264

265-
assert.Equal(t, []string{fmt.Sprintf("%s:%d", addr, port), fmt.Sprintf("%s:%d", addr2, port)}, brokerCfg.Addresses)
265+
assert.Equal(t, fmt.Sprintf("%s:%d,%s:%d", addr, port, addr2, port), brokerCfg.Addresses)
266266
assert.Contains(t, output, "kafka is configured to use authentication")
267267
assert.Equal(t, saslUsr, brokerCfg.SaslUsername)
268268
assert.Equal(t, saslPwd, brokerCfg.SaslPassword)

clowder/kafka.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package clowder
1616

1717
import (
1818
"fmt"
19-
2019
"github.com/RedHatInsights/insights-operator-utils/kafka"
2120
api "github.com/redhatinsights/app-common-go/pkg/api/v1"
2221
)
@@ -32,14 +31,16 @@ const (
3231
// loaded by Clowder
3332
func UseBrokerConfig(brokerCfg *kafka.BrokerConfiguration, loadedConfig *api.AppConfig) {
3433
if loadedConfig.Kafka != nil && len(loadedConfig.Kafka.Brokers) > 0 {
35-
brokerCfg.Addresses = make([]string, len(loadedConfig.Kafka.Brokers))
36-
for i, broker := range loadedConfig.Kafka.Brokers {
34+
brokerCfg.Addresses = ""
35+
for _, broker := range loadedConfig.Kafka.Brokers {
3736
if broker.Port != nil {
38-
brokerCfg.Addresses[i] = fmt.Sprintf("%s:%d", broker.Hostname, *broker.Port)
37+
brokerCfg.Addresses += fmt.Sprintf("%s:%d", broker.Hostname, *broker.Port) + ","
3938
} else {
40-
brokerCfg.Addresses[i] = broker.Hostname
39+
brokerCfg.Addresses += broker.Hostname + ","
4140
}
4241
}
42+
// remove the extra comma
43+
brokerCfg.Addresses = brokerCfg.Addresses[:len(brokerCfg.Addresses)-1]
4344
// SSL config
4445
clowderCfg := loadedConfig.Kafka.Brokers[0]
4546
if clowderCfg.Authtype != nil {

kafka/configuration.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ import (
3131

3232
// BrokerConfiguration represents configuration of a single-instance Kafka broker
3333
type BrokerConfiguration struct {
34-
Addresses []string `mapstructure:"addresses" toml:"addresses"`
34+
// Viper does not unmarshall automagically to a slice.
35+
// Handling a string is easier and nicer than all the code required to do so
36+
Addresses string `mapstructure:"addresses" toml:"addresses"`
3537
SecurityProtocol string `mapstructure:"security_protocol" toml:"security_protocol"`
3638
CertPath string `mapstructure:"cert_path" toml:"cert_path"`
3739
SaslMechanism string `mapstructure:"sasl_mechanism" toml:"sasl_mechanism"`

0 commit comments

Comments
 (0)