Add passive mode exchange declaration option to amqp consumer input (#3995)

This commit is contained in:
Mike Gent 2018-06-03 17:52:59 -05:00 committed by Daniel Nelson
parent 986186a440
commit 850eff5246
3 changed files with 29 additions and 9 deletions

View File

@ -3036,6 +3036,8 @@
# url = "amqp://localhost:5672/influxdb"
# ## AMQP exchange
# exchange = "telegraf"
# ## Exchange passive mode
# exchange_passive = false
# ## AMQP queue name
# queue = "telegraf"
# ## Binding Key

View File

@ -19,6 +19,8 @@ The following defaults are known to work with RabbitMQ:
url = "amqp://localhost:5672/influxdb"
## AMQP exchange
exchange = "telegraf"
## Exchange passive mode
exchange_passive = false
## AMQP queue name
queue = "telegraf"
## Binding Key

View File

@ -20,6 +20,8 @@ type AMQPConsumer struct {
URL string
// AMQP exchange
Exchange string
// Exchange passive mode
ExchangePassive bool
// Queue Name
Queue string
// Binding Key
@ -58,6 +60,8 @@ func (a *AMQPConsumer) SampleConfig() string {
url = "amqp://localhost:5672/influxdb"
## AMQP exchange
exchange = "telegraf"
## Exchange passive mode
exchange_passive = false
## AMQP queue name
queue = "telegraf"
## Binding Key
@ -174,15 +178,27 @@ func (a *AMQPConsumer) connect(amqpConf *amqp.Config) (<-chan amqp.Delivery, err
return nil, fmt.Errorf("Failed to open a channel: %s", err)
}
err = ch.ExchangeDeclare(
a.Exchange, // name
"topic", // type
true, // durable
false, // auto-deleted
false, // internal
false, // no-wait
nil, // arguments
)
if a.ExchangePassive == true {
err = ch.ExchangeDeclarePassive(
a.Exchange, // name
"topic", // type
true, // durable
false, // auto-deleted
false, // internal
false, // no-wait
nil, // arguments
)
} else {
err = ch.ExchangeDeclare(
a.Exchange, // name
"topic", // type
true, // durable
false, // auto-deleted
false, // internal
false, // no-wait
nil, // arguments
)
}
if err != nil {
return nil, fmt.Errorf("Failed to declare an exchange: %s", err)
}