github.com/vmware/govmomi@v0.51.0/task/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 task 6 7 import ( 8 "context" 9 10 "github.com/vmware/govmomi/vim25" 11 "github.com/vmware/govmomi/vim25/methods" 12 "github.com/vmware/govmomi/vim25/types" 13 ) 14 15 type Manager struct { 16 r types.ManagedObjectReference 17 c *vim25.Client 18 } 19 20 // NewManager creates a new task manager 21 func NewManager(c *vim25.Client) *Manager { 22 m := Manager{ 23 r: *c.ServiceContent.TaskManager, 24 c: c, 25 } 26 27 return &m 28 } 29 30 // Reference returns the task.Manager MOID 31 func (m Manager) Reference() types.ManagedObjectReference { 32 return m.r 33 } 34 35 // CreateCollectorForTasks returns a task history collector, a specialized 36 // history collector that gathers TaskInfo data objects. 37 func (m Manager) CreateCollectorForTasks(ctx context.Context, filter types.TaskFilterSpec) (*HistoryCollector, error) { 38 req := types.CreateCollectorForTasks{ 39 This: m.r, 40 Filter: filter, 41 } 42 43 res, err := methods.CreateCollectorForTasks(ctx, m.c, &req) 44 if err != nil { 45 return nil, err 46 } 47 48 return newHistoryCollector(m.c, res.Returnval), nil 49 }