github.com/vmware/govmomi@v0.51.0/history/collector.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 history 6 7 import ( 8 "context" 9 10 "github.com/vmware/govmomi/property" 11 "github.com/vmware/govmomi/vim25" 12 "github.com/vmware/govmomi/vim25/methods" 13 "github.com/vmware/govmomi/vim25/types" 14 ) 15 16 type Collector struct { 17 r types.ManagedObjectReference 18 c *vim25.Client 19 } 20 21 func NewCollector(c *vim25.Client, ref types.ManagedObjectReference) *Collector { 22 return &Collector{ 23 r: ref, 24 c: c, 25 } 26 } 27 28 // Reference returns the managed object reference of this collector 29 func (c Collector) Reference() types.ManagedObjectReference { 30 return c.r 31 } 32 33 // Client returns the vim25 client used by this collector 34 func (c Collector) Client() *vim25.Client { 35 return c.c 36 } 37 38 // Properties wraps property.DefaultCollector().RetrieveOne() and returns 39 // properties for the specified managed object reference 40 func (c Collector) Properties(ctx context.Context, r types.ManagedObjectReference, ps []string, dst any) error { 41 return property.DefaultCollector(c.c).RetrieveOne(ctx, r, ps, dst) 42 } 43 44 func (c Collector) Destroy(ctx context.Context) error { 45 req := types.DestroyCollector{ 46 This: c.r, 47 } 48 49 _, err := methods.DestroyCollector(ctx, c.c, &req) 50 return err 51 } 52 53 func (c Collector) Reset(ctx context.Context) error { 54 req := types.ResetCollector{ 55 This: c.r, 56 } 57 58 _, err := methods.ResetCollector(ctx, c.c, &req) 59 return err 60 } 61 62 func (c Collector) Rewind(ctx context.Context) error { 63 req := types.RewindCollector{ 64 This: c.r, 65 } 66 67 _, err := methods.RewindCollector(ctx, c.c, &req) 68 return err 69 } 70 71 func (c Collector) SetPageSize(ctx context.Context, maxCount int32) error { 72 req := types.SetCollectorPageSize{ 73 This: c.r, 74 MaxCount: maxCount, 75 } 76 77 _, err := methods.SetCollectorPageSize(ctx, c.c, &req) 78 return err 79 }