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
}