github.com/vmware/govmomi@v0.51.0/eam/object/agent.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/eam"
    11  	"github.com/vmware/govmomi/eam/methods"
    12  	"github.com/vmware/govmomi/eam/types"
    13  	vim "github.com/vmware/govmomi/vim25/types"
    14  )
    15  
    16  type Agent struct {
    17  	EamObject
    18  }
    19  
    20  // NewAgent returns a wrapper for an Agent managed object.
    21  func NewAgent(c *eam.Client, ref vim.ManagedObjectReference) *Agent {
    22  	return &Agent{
    23  		EamObject: EamObject{
    24  			c: c,
    25  			r: ref,
    26  		},
    27  	}
    28  }
    29  
    30  func (m Agent) Config(ctx context.Context) (*types.AgentConfigInfo, error) {
    31  	resp, err := methods.AgentQueryConfig(ctx, m.c, &types.AgentQueryConfig{
    32  		This: m.r,
    33  	})
    34  	if err != nil {
    35  		return nil, err
    36  	}
    37  	return &resp.Returnval, nil
    38  }
    39  
    40  func (m Agent) Runtime(ctx context.Context) (*types.AgentRuntimeInfo, error) {
    41  	resp, err := methods.AgentQueryRuntime(ctx, m.c, &types.AgentQueryRuntime{
    42  		This: m.r,
    43  	})
    44  	if err != nil {
    45  		return nil, err
    46  	}
    47  	return &resp.Returnval, nil
    48  }
    49  
    50  func (m Agent) MarkAsAvailable(ctx context.Context) error {
    51  	_, err := methods.MarkAsAvailable(ctx, m.c, &types.MarkAsAvailable{
    52  		This: m.r,
    53  	})
    54  	if err != nil {
    55  		return err
    56  	}
    57  	return nil
    58  }