diff options
| author | chrislu <chris.lu@gmail.com> | 2022-07-01 22:43:25 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-07-28 23:22:06 -0700 |
| commit | 21b6b07dd8d0379d835f9d9c1259155a12f1e61b (patch) | |
| tree | c3b13d69cac50afc227b1a06d34082cf3598f98a /weed/mq/msgclient/config.go | |
| parent | 8c4edf7b4014b157ee269419febe57af9cd67618 (diff) | |
| download | seaweedfs-21b6b07dd8d0379d835f9d9c1259155a12f1e61b.tar.xz seaweedfs-21b6b07dd8d0379d835f9d9c1259155a12f1e61b.zip | |
renaming
Diffstat (limited to 'weed/mq/msgclient/config.go')
| -rw-r--r-- | weed/mq/msgclient/config.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/weed/mq/msgclient/config.go b/weed/mq/msgclient/config.go new file mode 100644 index 000000000..263ee856e --- /dev/null +++ b/weed/mq/msgclient/config.go @@ -0,0 +1,63 @@ +package msgclient + +import ( + "context" + "log" + + "github.com/chrislusf/seaweedfs/weed/mq/broker" + "github.com/chrislusf/seaweedfs/weed/pb" + "github.com/chrislusf/seaweedfs/weed/pb/mq_pb" +) + +func (mc *MessagingClient) configureTopic(tp broker.TopicPartition) error { + + return mc.withAnyBroker(func(client mq_pb.SeaweedMessagingClient) error { + _, err := client.ConfigureTopic(context.Background(), + &mq_pb.ConfigureTopicRequest{ + Namespace: tp.Namespace, + Topic: tp.Topic, + Configuration: &mq_pb.TopicConfiguration{ + PartitionCount: 0, + Collection: "", + Replication: "", + IsTransient: false, + Partitoning: 0, + }, + }) + return err + }) + +} + +func (mc *MessagingClient) DeleteTopic(namespace, topic string) error { + + return mc.withAnyBroker(func(client mq_pb.SeaweedMessagingClient) error { + _, err := client.DeleteTopic(context.Background(), + &mq_pb.DeleteTopicRequest{ + Namespace: namespace, + Topic: topic, + }) + return err + }) +} + +func (mc *MessagingClient) withAnyBroker(fn func(client mq_pb.SeaweedMessagingClient) error) error { + + var lastErr error + for _, broker := range mc.bootstrapBrokers { + grpcConnection, err := pb.GrpcDial(context.Background(), broker, mc.grpcDialOption) + if err != nil { + log.Printf("dial broker %s: %v", broker, err) + continue + } + defer grpcConnection.Close() + + err = fn(mq_pb.NewSeaweedMessagingClient(grpcConnection)) + if err == nil { + return nil + } + lastErr = err + } + + return lastErr +} |
