github.com/vmware/govmomi@v0.51.0/eam/object/agency.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 Agency struct { 17 EamObject 18 } 19 20 // NewAgency returns a wrapper for an Agency managed object. 21 func NewAgency(c *eam.Client, ref vim.ManagedObjectReference) Agency { 22 return Agency{ 23 EamObject: EamObject{ 24 c: c, 25 r: ref, 26 }, 27 } 28 } 29 30 func (m Agency) Agents(ctx context.Context) ([]Agent, error) { 31 resp, err := methods.QueryAgent(ctx, m.c, &types.QueryAgent{ 32 This: m.r, 33 }) 34 if err != nil { 35 return nil, err 36 } 37 objs := make([]Agent, len(resp.Returnval)) 38 for i := range resp.Returnval { 39 objs[i].c = m.c 40 objs[i].r = resp.Returnval[i] 41 } 42 return objs, nil 43 } 44 45 func (m Agency) Config(ctx context.Context) (types.BaseAgencyConfigInfo, error) { 46 resp, err := methods.QueryConfig(ctx, m.c, &types.QueryConfig{ 47 This: m.r, 48 }) 49 if err != nil { 50 return nil, err 51 } 52 return resp.Returnval, nil 53 } 54 55 func (m Agency) Runtime(ctx context.Context) (*types.EamObjectRuntimeInfo, error) { 56 resp, err := methods.AgencyQueryRuntime(ctx, m.c, &types.AgencyQueryRuntime{ 57 This: m.r, 58 }) 59 if err != nil { 60 return nil, err 61 } 62 return resp.Returnval.GetEamObjectRuntimeInfo(), nil 63 } 64 65 func (m Agency) SolutionId(ctx context.Context) (string, error) { 66 resp, err := methods.QuerySolutionId(ctx, m.c, &types.QuerySolutionId{ 67 This: m.r, 68 }) 69 if err != nil { 70 return "", err 71 } 72 return resp.Returnval, nil 73 } 74 75 func (m Agency) Destroy(ctx context.Context) error { 76 _, err := methods.DestroyAgency(ctx, m.c, &types.DestroyAgency{ 77 This: m.r, 78 }) 79 if err != nil { 80 return err 81 } 82 return nil 83 } 84 85 func (m Agency) Disable(ctx context.Context) error { 86 _, err := methods.Agency_Disable(ctx, m.c, &types.Agency_Disable{ 87 This: m.r, 88 }) 89 if err != nil { 90 return err 91 } 92 return nil 93 } 94 95 func (m Agency) Enable(ctx context.Context) error { 96 _, err := methods.Agency_Enable(ctx, m.c, &types.Agency_Enable{ 97 This: m.r, 98 }) 99 if err != nil { 100 return err 101 } 102 return nil 103 } 104 105 func (m Agency) RegisterAgentVm( 106 ctx context.Context, 107 agentVmMoRef vim.ManagedObjectReference) (*Agent, error) { 108 109 resp, err := methods.RegisterAgentVm(ctx, m.c, &types.RegisterAgentVm{ 110 This: m.r, 111 AgentVm: agentVmMoRef, 112 }) 113 if err != nil { 114 return nil, err 115 } 116 return NewAgent(m.c, resp.Returnval), nil 117 } 118 119 func (m Agency) Uninstall(ctx context.Context) error { 120 _, err := methods.Uninstall(ctx, m.c, &types.Uninstall{ 121 This: m.r, 122 }) 123 if err != nil { 124 return err 125 } 126 return nil 127 } 128 129 func (m Agency) UnregisterAgentVm( 130 ctx context.Context, 131 agentVmMoRef vim.ManagedObjectReference) error { 132 133 _, err := methods.UnregisterAgentVm(ctx, m.c, &types.UnregisterAgentVm{ 134 This: m.r, 135 AgentVm: agentVmMoRef, 136 }) 137 if err != nil { 138 return err 139 } 140 return nil 141 } 142 143 func (m Agency) Update( 144 ctx context.Context, 145 config types.BaseAgencyConfigInfo) error { 146 147 _, err := methods.Update(ctx, m.c, &types.Update{ 148 This: m.r, 149 Config: config, 150 }) 151 if err != nil { 152 return err 153 } 154 return nil 155 }