code: func (m *Internal) NodeDump(args *structs.DCSpecificRequest,
  	reply *structs.IndexedNodeDump) error {
  	if done, err := m.srv.forward("Internal.NodeDump", args, args, reply); done {
  		return err
  	}
  
  	filter, err := bexpr.CreateFilter(args.Filter, nil, reply.Dump)
  	if err != nil {
  		return err
  	}
  
  	return m.srv.blockingQuery(
  		&args.QueryOptions,
  		&reply.QueryMeta,
  		func(ws memdb.WatchSet, state *state.Store) error {
  			index, dump, err := state.NodeDump(ws)
  			if err != nil {
  				return err
  			}
  
  			reply.Index, reply.Dump = index, dump
  			if err := m.srv.filterACL(args.Token, reply); err != nil {
  				return err
  			}
  
  			raw, err := filter.Execute(reply.Dump)
  			if err != nil {
  				return err
  			}
  
  			reply.Dump = raw.(structs.NodeDump)
  			return nil
  		})
  }
docs: // NodeDump is used to generate information about all of the nodes.