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  }