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  }