func (f *Finder) ClusterComputeResourceList(ctx context.Context, path string) ([]*object.ClusterComputeResource, error) { es, err := f.find(ctx, f.hostFolder, false, path) if err != nil { return nil, err } var ccrs []*object.ClusterComputeResource for _, e := range es { var ccr *object.ClusterComputeResource switch o := e.Object.(type) { case mo.ClusterComputeResource: ccr = object.NewClusterComputeResource(f.client, o.Reference()) default: continue } ccr.InventoryPath = e.Path ccrs = append(ccrs, ccr) } if len(ccrs) == 0 { return nil, &NotFoundError{"cluster", path} } return ccrs, nil }
func (cmd *add) Add(ctx context.Context, cluster *object.ClusterComputeResource) error { spec := cmd.HostConnectSpec var license *string if cmd.license != "" { license = &cmd.license } task, err := cluster.AddHost(ctx, spec, cmd.connect, license, nil) if err != nil { return err } logger := cmd.ProgressLogger(fmt.Sprintf("adding %s to cluster %s... ", spec.HostName, cluster.InventoryPath)) defer logger.Wait() _, err = task.WaitForResult(ctx, logger) return err }