github.com/vmware/govmomi@v0.51.0/ovf/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 ovf 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/mo" 13 "github.com/vmware/govmomi/vim25/types" 14 ) 15 16 type Manager struct { 17 types.ManagedObjectReference 18 19 c *vim25.Client 20 } 21 22 func NewManager(c *vim25.Client) *Manager { 23 return &Manager{*c.ServiceContent.OvfManager, c} 24 } 25 26 // CreateDescriptor wraps methods.CreateDescriptor 27 func (m *Manager) CreateDescriptor(ctx context.Context, obj mo.Reference, cdp types.OvfCreateDescriptorParams) (*types.OvfCreateDescriptorResult, error) { 28 req := types.CreateDescriptor{ 29 This: m.Reference(), 30 Obj: obj.Reference(), 31 Cdp: cdp, 32 } 33 34 res, err := methods.CreateDescriptor(ctx, m.c, &req) 35 if err != nil { 36 return nil, err 37 } 38 39 return &res.Returnval, nil 40 } 41 42 // CreateImportSpec wraps methods.CreateImportSpec 43 func (m *Manager) CreateImportSpec(ctx context.Context, ovfDescriptor string, resourcePool mo.Reference, datastore mo.Reference, cisp types.BaseOvfCreateImportSpecParams) (*types.OvfCreateImportSpecResult, error) { 44 req := types.CreateImportSpec{ 45 This: m.Reference(), 46 OvfDescriptor: ovfDescriptor, 47 ResourcePool: resourcePool.Reference(), 48 Datastore: datastore.Reference(), 49 Cisp: cisp, 50 } 51 52 res, err := methods.CreateImportSpec(ctx, m.c, &req) 53 if err != nil { 54 return nil, err 55 } 56 57 return &res.Returnval, nil 58 } 59 60 // ParseDescriptor wraps methods.ParseDescriptor 61 func (m *Manager) ParseDescriptor(ctx context.Context, ovfDescriptor string, pdp types.OvfParseDescriptorParams) (*types.OvfParseDescriptorResult, error) { 62 req := types.ParseDescriptor{ 63 This: m.Reference(), 64 OvfDescriptor: ovfDescriptor, 65 Pdp: pdp, 66 } 67 68 res, err := methods.ParseDescriptor(ctx, m.c, &req) 69 if err != nil { 70 return nil, err 71 } 72 73 return &res.Returnval, nil 74 } 75 76 // ValidateHost wraps methods.ValidateHost 77 func (m *Manager) ValidateHost(ctx context.Context, ovfDescriptor string, host mo.Reference, vhp types.OvfValidateHostParams) (*types.OvfValidateHostResult, error) { 78 req := types.ValidateHost{ 79 This: m.Reference(), 80 OvfDescriptor: ovfDescriptor, 81 Host: host.Reference(), 82 Vhp: vhp, 83 } 84 85 res, err := methods.ValidateHost(ctx, m.c, &req) 86 if err != nil { 87 return nil, err 88 } 89 90 return &res.Returnval, nil 91 }