code: func (e *ShowExec) fetchShowPumpOrDrainerStatus(kind string) error {
  	registry, err := createRegistry(config.GetGlobalConfig().Path)
  	if err != nil {
  		return errors.Trace(err)
  	}
  
  	nodes, _, err := registry.Nodes(context.Background(), node.NodePrefix[kind])
  	if err != nil {
  		return errors.Trace(err)
  	}
  	err = registry.Close()
  	if err != nil {
  		return errors.Trace(err)
  	}
  
  	for _, n := range nodes {
  		e.appendRow([]interface{}{n.NodeID, n.Addr, n.State, n.MaxCommitTS, utils.TSOToRoughTime(n.UpdateTS).Format(types.TimeFormat)})
  	}
  
  	return nil
  }
docs: // fetchShowPumpOrDrainerStatus gets status of all pumps or drainers and fill them into e.rows.