github.com/vmware/govmomi@v0.51.0/eam/object/eam_object.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 "fmt" 10 11 "github.com/vmware/govmomi/eam" 12 "github.com/vmware/govmomi/eam/methods" 13 "github.com/vmware/govmomi/eam/types" 14 vim "github.com/vmware/govmomi/vim25/types" 15 ) 16 17 // EamObject contains the fields and functions common to all objects. 18 type EamObject struct { 19 c *eam.Client 20 r vim.ManagedObjectReference 21 } 22 23 func (m EamObject) String() string { 24 return fmt.Sprintf("%v", m.Reference()) 25 } 26 27 func (m EamObject) Reference() vim.ManagedObjectReference { 28 return m.r 29 } 30 31 func (m EamObject) Client() *eam.Client { 32 return m.c 33 } 34 35 func (m EamObject) AddIssue( 36 ctx context.Context, 37 issue types.BaseIssue) (types.BaseIssue, error) { 38 39 resp, err := methods.AddIssue(ctx, m.c, &types.AddIssue{ 40 This: m.r, 41 Issue: issue, 42 }) 43 if err != nil { 44 return nil, err 45 } 46 return resp.Returnval, nil 47 } 48 49 func (m EamObject) Issues( 50 ctx context.Context, 51 issueKeys ...int32) ([]types.BaseIssue, error) { 52 53 resp, err := methods.QueryIssue(ctx, m.c, &types.QueryIssue{ 54 This: m.r, 55 IssueKey: issueKeys, 56 }) 57 if err != nil { 58 return nil, err 59 } 60 return resp.Returnval, nil 61 } 62 63 func (m EamObject) Resolve( 64 ctx context.Context, 65 issueKeys []int32) ([]int32, error) { 66 67 resp, err := methods.Resolve(ctx, m.c, &types.Resolve{ 68 This: m.r, 69 IssueKey: issueKeys, 70 }) 71 if err != nil { 72 return nil, err 73 } 74 return resp.Returnval, nil 75 } 76 77 func (m EamObject) ResolveAll(ctx context.Context) error { 78 79 _, err := methods.ResolveAll(ctx, m.c, &types.ResolveAll{ 80 This: m.r, 81 }) 82 if err != nil { 83 return err 84 } 85 return nil 86 }