code: func (dc *Datacenter) GetDatastoreMoList(ctx context.Context, dsObjList []*Datastore, properties []string) ([]mo.Datastore, error) {
  	var dsMoList []mo.Datastore
  	var dsRefs []types.ManagedObjectReference
  	if len(dsObjList) < 1 {
  		klog.Errorf("Datastore Object list is empty")
  		return nil, fmt.Errorf("Datastore Object list is empty")
  	}
  
  	for _, dsObj := range dsObjList {
  		dsRefs = append(dsRefs, dsObj.Reference())
  	}
  	pc := property.DefaultCollector(dc.Client())
  	err := pc.Retrieve(ctx, dsRefs, properties, &dsMoList)
  	if err != nil {
  		klog.Errorf("Failed to get Datastore managed objects from datastore objects. dsObjList: %+v, properties: %+v, err: %v", dsObjList, properties, err)
  		return nil, err
  	}
  	return dsMoList, nil
  }
docs: // GetDatastoreMoList gets the Datastore Managed Objects with the given properties from the datastore objects