github.com/vmware/govmomi@v0.51.0/view/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 view 6 7 import ( 8 "context" 9 10 "github.com/vmware/govmomi/object" 11 "github.com/vmware/govmomi/vim25" 12 "github.com/vmware/govmomi/vim25/methods" 13 "github.com/vmware/govmomi/vim25/types" 14 ) 15 16 type Manager struct { 17 object.Common 18 } 19 20 func NewManager(c *vim25.Client) *Manager { 21 m := Manager{ 22 object.NewCommon(c, *c.ServiceContent.ViewManager), 23 } 24 25 return &m 26 } 27 28 func (m Manager) CreateListView(ctx context.Context, objects []types.ManagedObjectReference) (*ListView, error) { 29 req := types.CreateListView{ 30 This: m.Common.Reference(), 31 Obj: objects, 32 } 33 34 res, err := methods.CreateListView(ctx, m.Client(), &req) 35 if err != nil { 36 return nil, err 37 } 38 39 return NewListView(m.Client(), res.Returnval), nil 40 } 41 42 func (m Manager) CreateContainerView(ctx context.Context, container types.ManagedObjectReference, managedObjectTypes []string, recursive bool) (*ContainerView, error) { 43 44 req := types.CreateContainerView{ 45 This: m.Common.Reference(), 46 Container: container, 47 Recursive: recursive, 48 Type: managedObjectTypes, 49 } 50 51 res, err := methods.CreateContainerView(ctx, m.Client(), &req) 52 if err != nil { 53 return nil, err 54 } 55 56 return NewContainerView(m.Client(), res.Returnval), nil 57 }