github.com/vmware/govmomi@v0.51.0/cli/vm/check/compat.go (about)

     1  // © Broadcom. All Rights Reserved.
     2  // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
     3  // SPDX-License-Identifier: Apache-2.0
     4  
     5  package check
     6  
     7  import (
     8  	"context"
     9  	"flag"
    10  
    11  	"github.com/vmware/govmomi/cli"
    12  )
    13  
    14  type compat struct {
    15  	checkFlag
    16  }
    17  
    18  func init() {
    19  	cli.Register("vm.check.compat", &compat{}, true)
    20  }
    21  
    22  func (cmd *compat) Description() string {
    23  	return `Check if VM can be placed on the given HOST in the given resource POOL.
    24  
    25  Examples:
    26    govc vm.check.compat -vm my-vm -host $host -pool $pool`
    27  }
    28  
    29  func (cmd *compat) Run(ctx context.Context, f *flag.FlagSet) error {
    30  	vm, err := cmd.VirtualMachine()
    31  	if err != nil {
    32  		return err
    33  	}
    34  
    35  	if vm == nil {
    36  		return flag.ErrHelp
    37  	}
    38  
    39  	checker, err := cmd.compatChecker()
    40  	if err != nil {
    41  		return err
    42  	}
    43  
    44  	res, err := checker.CheckCompatibility(ctx, vm.Reference(), cmd.Host, cmd.Pool, cmd.testTypes...)
    45  	if err != nil {
    46  		return err
    47  	}
    48  
    49  	return cmd.result(ctx, res)
    50  }