53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package amqp
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"log"
|
|
|
|
"github.com/rabbitmq/amqp091-go"
|
|
"gopkg.in/ini.v1"
|
|
)
|
|
|
|
func Config() (*ini.File, error) {
|
|
return ini.Load("/etc/deevirt/config.ini")
|
|
}
|
|
|
|
func Publisher(body []byte) {
|
|
config, _ := Config()
|
|
|
|
amqp_config := amqp091.Config{
|
|
Properties: amqp091.NewConnectionProperties(),
|
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
}
|
|
amqp_config.Properties.SetClientConnectionName("producer-with-confirms")
|
|
|
|
conn, err := amqp091.DialConfig(config.Section("broker").Key("uri").String(), amqp_config)
|
|
if err != nil {
|
|
log.Fatalf("producer: error in dial: %s", err)
|
|
}
|
|
defer conn.Close()
|
|
|
|
log.Println("producer: got Connection, getting Channel")
|
|
channel, err := conn.Channel()
|
|
if err != nil {
|
|
log.Fatalf("error getting a channel: %s", err)
|
|
}
|
|
defer channel.Close()
|
|
|
|
//log.Printf("producer: publishing %dB body (%q)", len(*body), *body)
|
|
_, err = channel.PublishWithDeferredConfirm(
|
|
"vmcenter",
|
|
"cluster.f242b4bb-b6d0-415f-b3f9-9e9d439532b5.dom.add",
|
|
true,
|
|
false,
|
|
amqp091.Publishing{
|
|
ContentType: "text/plain",
|
|
DeliveryMode: amqp091.Persistent,
|
|
Body: body,
|
|
},
|
|
)
|
|
if err != nil {
|
|
log.Fatalf("producer: error in publish: %s", err)
|
|
}
|
|
}
|