Skip to content

Commit 07c1cc0

Browse files
authored
Merge pull request #35 from netlify/more-env-config
support for optional TLS in rabbit and nats
2 parents 32eee0a + 30cadae commit 07c1cc0

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

messaging/nats.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package messaging
33
import (
44
"strings"
55

6-
"github.com/sirupsen/logrus"
76
"github.com/nats-io/nats"
7+
"github.com/sirupsen/logrus"
88

99
"github.com/rybit/nats_logrus_hook"
1010

@@ -70,7 +70,9 @@ func ConnectToNats(config *NatsConfig, errHandler nats.ErrHandler) (*nats.Conn,
7070
if err != nil {
7171
return nil, err
7272
}
73-
options = append(options, nats.Secure(tlsConfig))
73+
if tlsConfig != nil {
74+
options = append(options, nats.Secure(tlsConfig))
75+
}
7476
}
7577

7678
if errHandler != nil {

messaging/rabbit.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ type RabbitConfig struct {
4343
Servers []string `mapstructure:"servers"`
4444
TLS *tls.Config `mapstructure:"tls_conf"`
4545

46-
ExchangeDefinition ExchangeDefinition `mapstructure:"exchange"`
47-
QueueDefinition QueueDefinition `mapstructure:"queue"`
48-
DeliveryDefinition *DeliveryDefinition `mapstructure:"delivery"`
46+
ExchangeDefinition ExchangeDefinition `envconfig:"exchange" mapstructure:"exchange"`
47+
QueueDefinition QueueDefinition `envconfig:"queue" mapstructure:"queue"`
48+
DeliveryDefinition *DeliveryDefinition `envconfig:"delivery" mapstructure:"delivery"`
4949
}
5050

5151
// ExchangeDefinition defines all the parameters for an exchange
@@ -222,18 +222,22 @@ func DialToRabbit(servers []string, tls *tls.Config, log *logrus.Entry) (*amqp.C
222222
Heartbeat: 10 * time.Second,
223223
}
224224

225-
fields := logrus.Fields{}
225+
fields := logrus.Fields{
226+
"servers": strings.Join(servers, ","),
227+
}
226228
if tls != nil {
227-
fields["cert_file"] = tls.CertFile
228-
fields["key_file"] = tls.KeyFile
229-
fields["ca_files"] = tls.CAFiles
230-
231229
tlsConfig, err := tls.TLSConfig()
232230
if err != nil {
233231
return nil, err
234232
}
235233

236-
dialConfig.TLSClientConfig = tlsConfig
234+
if tlsConfig != nil {
235+
fields["cert_file"] = tls.CertFile
236+
fields["key_file"] = tls.KeyFile
237+
fields["ca_files"] = tls.CAFiles
238+
log.WithFields(fields).Debug("Forcing TLS connection")
239+
dialConfig.TLSClientConfig = tlsConfig
240+
}
237241
}
238242

239243
log.WithFields(fields).Info("Dialing rabbitmq servers")
@@ -247,9 +251,12 @@ func DialToRabbit(servers []string, tls *tls.Config, log *logrus.Entry) (*amqp.C
247251

248252
// CreateChannel initializes a new message channel.
249253
func CreateChannel(conn *amqp.Connection, exchange ExchangeDefinition, queue QueueDefinition, log *logrus.Entry) (*amqp.Channel, error) {
254+
log.Debugf("Original exchange definition: %s", exchange.JSON())
250255
ed := NewExchangeDefinition(exchange.Name, exchange.Type)
251256
ed.merge(&exchange)
252257
log.Debugf("Using exchange definition: %s", ed.JSON())
258+
259+
log.Debugf("Original queue definition: %s", queue.JSON())
253260
qd := NewQueueDefinition(queue.Name, queue.BindingKey)
254261
qd.merge(&queue)
255262
log.Debugf("Using queue definition %s", qd.JSON())
@@ -272,6 +279,7 @@ func CreateConsumer(conn *amqp.Connection, exchange ExchangeDefinition, queue Qu
272279
func CreateConsumerOnChannel(conn *amqp.Connection, ch *amqp.Channel, queue QueueDefinition, delivery *DeliveryDefinition, log *logrus.Entry) (*Consumer, error) {
273280
dd := NewDeliveryDefinition(queue.Name)
274281
if delivery != nil {
282+
log.Debugf("Original delivery definition: %s", delivery.JSON())
275283
dd.merge(delivery)
276284
}
277285
log.Debugf("Using delivery definition: %s", dd.JSON())

0 commit comments

Comments
 (0)