mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-12-05 03:29:03 +08:00
35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
|
package cluster
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"github.com/chrislusf/seaweedfs/weed/glog"
|
||
|
"github.com/chrislusf/seaweedfs/weed/pb"
|
||
|
"github.com/chrislusf/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
|
||
|
}
|