You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							34 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							34 lines
						
					
					
						
							1.1 KiB
						
					
					
				
								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, false, 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,
							 | 
						|
												IsAdd:       true,
							 | 
						|
												CreatedAtNs: node.CreatedAtNs,
							 | 
						|
											})
							 | 
						|
										}
							 | 
						|
										return err
							 | 
						|
									}); grpcErr != nil {
							 | 
						|
										glog.V(0).Infof("connect to %s: %v", master, grpcErr)
							 | 
						|
									}
							 | 
						|
									return
							 | 
						|
								}
							 |