github.com/vmware/govmomi@v0.51.0/object/environment_browser.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 object
     6  
     7  import (
     8  	"context"
     9  
    10  	"github.com/vmware/govmomi/vim25"
    11  	"github.com/vmware/govmomi/vim25/methods"
    12  	"github.com/vmware/govmomi/vim25/types"
    13  )
    14  
    15  type EnvironmentBrowser struct {
    16  	Common
    17  }
    18  
    19  func NewEnvironmentBrowser(c *vim25.Client, ref types.ManagedObjectReference) *EnvironmentBrowser {
    20  	return &EnvironmentBrowser{
    21  		Common: NewCommon(c, ref),
    22  	}
    23  }
    24  
    25  func (b EnvironmentBrowser) QueryConfigTarget(ctx context.Context, host *HostSystem) (*types.ConfigTarget, error) {
    26  	req := types.QueryConfigTarget{
    27  		This: b.Reference(),
    28  	}
    29  
    30  	if host != nil {
    31  		ref := host.Reference()
    32  		req.Host = &ref
    33  	}
    34  
    35  	res, err := methods.QueryConfigTarget(ctx, b.Client(), &req)
    36  	if err != nil {
    37  		return nil, err
    38  	}
    39  
    40  	return res.Returnval, nil
    41  }
    42  
    43  func (b EnvironmentBrowser) QueryTargetCapabilities(ctx context.Context, host *HostSystem) (*types.HostCapability, error) {
    44  	req := types.QueryTargetCapabilities{
    45  		This: b.Reference(),
    46  	}
    47  
    48  	if host != nil {
    49  		ref := host.Reference()
    50  		req.Host = &ref
    51  	}
    52  
    53  	res, err := methods.QueryTargetCapabilities(ctx, b.Client(), &req)
    54  	if err != nil {
    55  		return nil, err
    56  	}
    57  
    58  	return res.Returnval, nil
    59  }
    60  
    61  func (b EnvironmentBrowser) QueryConfigOption(ctx context.Context, spec *types.EnvironmentBrowserConfigOptionQuerySpec) (*types.VirtualMachineConfigOption, error) {
    62  	req := types.QueryConfigOptionEx{
    63  		This: b.Reference(),
    64  		Spec: spec,
    65  	}
    66  
    67  	res, err := methods.QueryConfigOptionEx(ctx, b.Client(), &req)
    68  	if err != nil {
    69  		return nil, err
    70  	}
    71  
    72  	return res.Returnval, nil
    73  }
    74  
    75  func (b EnvironmentBrowser) QueryConfigOptionDescriptor(ctx context.Context) ([]types.VirtualMachineConfigOptionDescriptor, error) {
    76  	req := types.QueryConfigOptionDescriptor{
    77  		This: b.Reference(),
    78  	}
    79  
    80  	res, err := methods.QueryConfigOptionDescriptor(ctx, b.Client(), &req)
    81  	if err != nil {
    82  		return nil, err
    83  	}
    84  
    85  	return res.Returnval, nil
    86  }