github.com/vmware/govmomi@v0.51.0/eam/object/esx_agent_manager.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 EsxAgentManager struct { 17 EamObject 18 } 19 20 // NewEsxAgentManager returns a wrapper for an EsxAgentManager managed object. 21 func NewEsxAgentManager(c *eam.Client, ref vim.ManagedObjectReference) EsxAgentManager { 22 return EsxAgentManager{ 23 EamObject: EamObject{ 24 c: c, 25 r: ref, 26 }, 27 } 28 } 29 30 func (m EsxAgentManager) CreateAgency( 31 ctx context.Context, 32 config types.BaseAgencyConfigInfo, 33 initialGoalState string) (Agency, error) { 34 35 var agency Agency 36 resp, err := methods.CreateAgency(ctx, m.c, &types.CreateAgency{ 37 This: m.r, 38 AgencyConfigInfo: config, 39 InitialGoalState: initialGoalState, 40 }) 41 if err != nil { 42 return agency, err 43 } 44 agency.c = m.c 45 agency.r = resp.Returnval 46 return agency, nil 47 } 48 49 func (m EsxAgentManager) Agencies(ctx context.Context) ([]Agency, error) { 50 resp, err := methods.QueryAgency(ctx, m.c, &types.QueryAgency{ 51 This: m.r, 52 }) 53 if err != nil { 54 return nil, err 55 } 56 objs := make([]Agency, len(resp.Returnval)) 57 for i := range resp.Returnval { 58 objs[i].c = m.c 59 objs[i].r = resp.Returnval[i] 60 } 61 return objs, nil 62 } 63 64 func (m EsxAgentManager) ScanForUnknownAgentVm(ctx context.Context) error { 65 _, err := methods.ScanForUnknownAgentVm(ctx, m.c, &types.ScanForUnknownAgentVm{ 66 This: m.r, 67 }) 68 if err != nil { 69 return err 70 } 71 return nil 72 }