code: func MoveHostsInto(cluster *object.ClusterComputeResource, hosts []*object.HostSystem) error {
  	var hsNames []string
  	var hsRefs []types.ManagedObjectReference
  	for _, hs := range hosts {
  		hsNames = append(hsNames, hs.Name())
  		hsRefs = append(hsRefs, hs.Reference())
  	}
  	log.Printf("[DEBUG] Adding hosts into cluster %q: %s", cluster.Name(), strings.Join(hsNames, ", "))
  
  	req := types.MoveInto_Task{
  		This: cluster.Reference(),
  		Host: hsRefs,
  	}
  
  	ctx, cancel := context.WithTimeout(context.Background(), provider.DefaultAPITimeout)
  	defer cancel()
  	resp, err := methods.MoveInto_Task(ctx, cluster.Client(), &req)
  	if err != nil {
  		return err
  	}
  
  	task := object.NewTask(cluster.Client(), resp.Returnval)
  	return task.Wait(ctx)
  }
docs: // MoveHostsInto moves all of the supplied hosts into the cluster. All virtual
  // machines are moved to the cluster's root resource pool and any resource
  // pools on the host itself are deleted.