2022-07-12 09:00:54 +00:00
|
|
|
package cluster
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2022-07-29 07:17:28 +00:00
|
|
|
"github.com/seaweedfs/seaweedfs/weed/glog"
|
|
|
|
"github.com/seaweedfs/seaweedfs/weed/pb"
|
|
|
|
"github.com/seaweedfs/seaweedfs/weed/pb/master_pb"
|
2022-07-12 09:00:54 +00:00
|
|
|
"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
|
|
|
|
}
|