code: func (m *Mercury) GetAllNodes(ctx context.Context) ([]*types.Node, error) {
  	pods, err := m.GetAllPods(ctx)
  	if err != nil {
  		return []*types.Node{}, err
  	}
  
  	nodes := []*types.Node{}
  	for _, pod := range pods {
  		ns, err := m.GetNodesByPod(ctx, pod.Name)
  		if err != nil {
  			return nodes, err
  		}
  		nodes = append(nodes, ns...)
  	}
  	return nodes, err
  }
docs: // GetAllNodes get all nodes from etcd
  // any error will break and return immediately