func()

in store/store.go [271:303]


func (s *ClusterStore) CheckNewNodes(ctx context.Context, nodes []string) error {
	newNodes := make(map[string]bool, 0)
	for _, node := range nodes {
		newNodes[node] = true
	}

	namespaces, err := s.ListNamespace(ctx)
	if err != nil {
		return err
	}
	existingNodes := make([]string, 0)
	for _, ns := range namespaces {
		clusters, err := s.ListCluster(ctx, ns)
		if err != nil {
			return err
		}
		for _, cluster := range clusters {
			c, err := s.GetCluster(ctx, ns, cluster)
			if err != nil {
				return err
			}
			for _, existingNode := range c.GetNodes() {
				if _, ok := newNodes[existingNode.Addr()]; ok {
					existingNodes = append(existingNodes, existingNode.Addr())
				}
			}
		}
	}
	if len(existingNodes) > 0 {
		return fmt.Errorf("node: %w: %v", consts.ErrAlreadyExists, existingNodes)
	}
	return nil
}