diff options
Diffstat (limited to 'weed/cluster/master_client.go')
| -rw-r--r-- | weed/cluster/master_client.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/weed/cluster/master_client.go b/weed/cluster/master_client.go new file mode 100644 index 000000000..d1e769c1d --- /dev/null +++ b/weed/cluster/master_client.go @@ -0,0 +1,34 @@ +package cluster + +import ( + "context" + "github.com/seaweedfs/seaweedfs/weed/glog" + "github.com/seaweedfs/seaweedfs/weed/pb" + "github.com/seaweedfs/seaweedfs/weed/pb/master_pb" + "google.golang.org/grpc" +) + +func ListExistingPeerUpdates(master pb.ServerAddress, grpcDialOption grpc.DialOption, filerGroup string, clientType string) (existingNodes []*master_pb.ClusterNodeUpdate) { + + if grpcErr := pb.WithMasterClient(false, master, grpcDialOption, func(client master_pb.SeaweedClient) error { + resp, err := client.ListClusterNodes(context.Background(), &master_pb.ListClusterNodesRequest{ + ClientType: clientType, + FilerGroup: filerGroup, + }) + + glog.V(0).Infof("the cluster has %d %s\n", len(resp.ClusterNodes), clientType) + for _, node := range resp.ClusterNodes { + existingNodes = append(existingNodes, &master_pb.ClusterNodeUpdate{ + NodeType: FilerType, + Address: node.Address, + IsLeader: node.IsLeader, + IsAdd: true, + CreatedAtNs: node.CreatedAtNs, + }) + } + return err + }); grpcErr != nil { + glog.V(0).Infof("connect to %s: %v", master, grpcErr) + } + return +} |
