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 }