object

package
v0.41.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2024 License: Apache-2.0 Imports: 41 Imported by: 2,537

Documentation

Index

Examples

Constants

View Source
const (
	DeviceTypeNone     = "-"
	DeviceTypeCdrom    = "cdrom"
	DeviceTypeDisk     = "disk"
	DeviceTypeEthernet = "ethernet"
	DeviceTypeFloppy   = "floppy"
)

Type values for use in BootOrder

View Source
const (
	PropRuntimePowerState = "summary.runtime.powerState"
	PropConfigTemplate    = "summary.config.template"
)

Variables

View Source
var (
	ErrKeyNameNotFound = errors.New("key name not found")
)
View Source
var (
	ErrNotSupported = errors.New("product/version specific feature not supported by target")
)

Functions

func ReferenceFromString added in v0.27.0

func ReferenceFromString(s string) *types.ManagedObjectReference

func SnapshotSize added in v0.24.1

func SnapshotSize(info types.ManagedObjectReference, parent *types.ManagedObjectReference, vmlayout *types.VirtualMachineFileLayoutEx, isCurrent bool) int

SnapshotSize calculates the size of a given snapshot in bytes. If the snapshot is current, disk files not associated with any parent snapshot are included in size calculations. This allows for measuring and including the growth from the last fixed snapshot to the present state.

Types

type AuthorizationManager added in v0.3.0

type AuthorizationManager struct {
	Common
}

func NewAuthorizationManager added in v0.3.0

func NewAuthorizationManager(c *vim25.Client) *AuthorizationManager

func (AuthorizationManager) AddRole added in v0.11.4

func (m AuthorizationManager) AddRole(ctx context.Context, name string, ids []string) (int32, error)

func (AuthorizationManager) DisableMethods added in v0.15.0

func (m AuthorizationManager) DisableMethods(ctx context.Context, entity []types.ManagedObjectReference, method []DisabledMethodRequest, source string) error

func (AuthorizationManager) EnableMethods added in v0.15.0

func (m AuthorizationManager) EnableMethods(ctx context.Context, entity []types.ManagedObjectReference, method []string, source string) error

func (AuthorizationManager) FetchUserPrivilegeOnEntities added in v0.24.0

func (m AuthorizationManager) FetchUserPrivilegeOnEntities(ctx context.Context, entities []types.ManagedObjectReference, userName string) ([]types.UserPrivilegeResult, error)

func (AuthorizationManager) HasPrivilegeOnEntity added in v0.24.0

func (m AuthorizationManager) HasPrivilegeOnEntity(ctx context.Context, entity types.ManagedObjectReference, sessionID string, privID []string) ([]bool, error)

func (AuthorizationManager) HasUserPrivilegeOnEntities added in v0.24.0

func (m AuthorizationManager) HasUserPrivilegeOnEntities(ctx context.Context, entities []types.ManagedObjectReference, userName string, privID []string) ([]types.EntityPrivilege, error)

func (AuthorizationManager) RemoveEntityPermission added in v0.3.0

func (m AuthorizationManager) RemoveEntityPermission(ctx context.Context, entity types.ManagedObjectReference, user string, isGroup bool) error

func (AuthorizationManager) RemoveRole added in v0.11.4

func (m AuthorizationManager) RemoveRole(ctx context.Context, id int32, failIfUsed bool) error

func (AuthorizationManager) RetrieveAllPermissions added in v0.11.4

func (m AuthorizationManager) RetrieveAllPermissions(ctx context.Context) ([]types.Permission, error)

func (AuthorizationManager) RetrieveEntityPermissions added in v0.3.0

func (m AuthorizationManager) RetrieveEntityPermissions(ctx context.Context, entity types.ManagedObjectReference, inherited bool) ([]types.Permission, error)

func (AuthorizationManager) RetrieveRolePermissions added in v0.11.4

func (m AuthorizationManager) RetrieveRolePermissions(ctx context.Context, id int32) ([]types.Permission, error)

func (AuthorizationManager) RoleList added in v0.3.0

func (AuthorizationManager) SetEntityPermissions added in v0.3.0

func (m AuthorizationManager) SetEntityPermissions(ctx context.Context, entity types.ManagedObjectReference, permission []types.Permission) error

func (AuthorizationManager) UpdateRole added in v0.11.4

func (m AuthorizationManager) UpdateRole(ctx context.Context, id int32, name string, ids []string) error

type AuthorizationRoleList added in v0.3.0

type AuthorizationRoleList []types.AuthorizationRole

func (AuthorizationRoleList) ById added in v0.3.0

func (AuthorizationRoleList) ByName added in v0.3.0

type ClusterComputeResource

type ClusterComputeResource struct {
	ComputeResource
}

func (ClusterComputeResource) AddHost

func (c ClusterComputeResource) AddHost(ctx context.Context, spec types.HostConnectSpec, asConnected bool, license *string, resourcePool *types.ManagedObjectReference) (*Task, error)

func (ClusterComputeResource) Configuration added in v0.17.0

func (ClusterComputeResource) MoveInto added in v0.19.0

func (c ClusterComputeResource) MoveInto(ctx context.Context, hosts ...*HostSystem) (*Task, error)

func (ClusterComputeResource) PlaceVm added in v0.22.0

type Common

type Common struct {
	InventoryPath string
	// contains filtered or unexported fields
}

Common contains the fields and functions common to all objects.

func (Common) Client

func (c Common) Client() *vim25.Client

func (Common) Destroy added in v0.3.0

func (c Common) Destroy(ctx context.Context) (*Task, error)
Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
)

func main() {
	model := simulator.VPX()
	model.Datastore = 2

	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		// Change to "LocalDS_0" will cause ResourceInUse error,
		// as simulator VMs created by the VPX model use "LocalDS_0".
		ds, err := find.NewFinder(c).Datastore(ctx, "LocalDS_1")
		if err != nil {
			return err
		}

		task, err := ds.Destroy(ctx)
		if err != nil {
			return err
		}

		if err = task.Wait(ctx); err != nil {
			return err
		}

		fmt.Println("destroyed", ds.InventoryPath)
		return nil
	}, model)
}
Output:

destroyed /DC0/datastore/LocalDS_1

func (Common) Name added in v0.7.0

func (c Common) Name() string

Name returns the base name of the InventoryPath field

func (Common) ObjectName added in v0.7.0

func (c Common) ObjectName(ctx context.Context) (string, error)

ObjectName fetches the mo.ManagedEntity.Name field via the property collector.

func (Common) Properties

func (c Common) Properties(ctx context.Context, r types.ManagedObjectReference, ps []string, dst interface{}) error

Properties is a wrapper for property.DefaultCollector().RetrieveOne()

func (Common) Reference

func (c Common) Reference() types.ManagedObjectReference

func (Common) Rename added in v0.6.0

func (c Common) Rename(ctx context.Context, name string) (*Task, error)
Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
)

func main() {
	model := simulator.VPX()

	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		dc, err := find.NewFinder(c).Datacenter(ctx, "DC0")
		if err != nil {
			return err
		}

		task, err := dc.Rename(ctx, "MyDC")
		if err != nil {
			return err
		}

		if err = task.Wait(ctx); err != nil {
			return err
		}

		name, err := dc.ObjectName(ctx)
		if err != nil {
			return err
		}

		fmt.Println(name)
		return nil
	}, model)
}
Output:

MyDC

func (Common) SetCustomValue added in v0.20.0

func (c Common) SetCustomValue(ctx context.Context, key string, value string) error

func (*Common) SetInventoryPath added in v0.8.0

func (c *Common) SetInventoryPath(p string)

func (Common) String

func (c Common) String() string

type ComputeResource

type ComputeResource struct {
	Common
}

func (ComputeResource) Datastores

func (c ComputeResource) Datastores(ctx context.Context) ([]*Datastore, error)

func (ComputeResource) EnvironmentBrowser added in v0.32.0

func (c ComputeResource) EnvironmentBrowser(ctx context.Context) (*EnvironmentBrowser, error)

func (ComputeResource) Hosts

func (c ComputeResource) Hosts(ctx context.Context) ([]*HostSystem, error)

func (ComputeResource) Reconfigure added in v0.3.0

func (c ComputeResource) Reconfigure(ctx context.Context, spec types.BaseComputeResourceConfigSpec, modify bool) (*Task, error)

func (ComputeResource) ResourcePool

func (c ComputeResource) ResourcePool(ctx context.Context) (*ResourcePool, error)

type CustomFieldDefList added in v0.16.0

type CustomFieldDefList []types.CustomFieldDef

func (CustomFieldDefList) ByKey added in v0.16.0

type CustomFieldsManager

type CustomFieldsManager struct {
	Common
}

func GetCustomFieldsManager

func GetCustomFieldsManager(c *vim25.Client) (*CustomFieldsManager, error)

GetCustomFieldsManager wraps NewCustomFieldsManager, returning ErrNotSupported when the client is not connected to a vCenter instance.

func NewCustomFieldsManager

func NewCustomFieldsManager(c *vim25.Client) *CustomFieldsManager

func (CustomFieldsManager) Add

func (m CustomFieldsManager) Add(ctx context.Context, name string, moType string, fieldDefPolicy *types.PrivilegePolicyDef, fieldPolicy *types.PrivilegePolicyDef) (*types.CustomFieldDef, error)

func (CustomFieldsManager) Field

func (CustomFieldsManager) FindKey

func (m CustomFieldsManager) FindKey(ctx context.Context, name string) (int32, error)

func (CustomFieldsManager) Remove

func (m CustomFieldsManager) Remove(ctx context.Context, key int32) error

func (CustomFieldsManager) Rename

func (m CustomFieldsManager) Rename(ctx context.Context, key int32, name string) error

func (CustomFieldsManager) Set

Example
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/vmware/govmomi/object"
	"github.com/vmware/govmomi/property"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/view"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/mo"
	"github.com/vmware/govmomi/vim25/types"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		m, err := object.GetCustomFieldsManager(c)
		if err != nil {
			return err
		}

		any := []string{"ManagedEntity"}
		field, err := m.Add(ctx, "backup", any[0], nil, nil) // adds the custom field "backup" to all types
		if err != nil {
			return err
		}

		v, err := view.NewManager(c).CreateContainerView(ctx, c.ServiceContent.RootFolder, any, true)
		if err != nil {
			log.Fatal(err)
		}

		all, err := v.Find(ctx, any, nil) // gives us the count of all objects in the inventory
		if err != nil {
			return err
		}

		refs, err := v.Find(ctx, []string{"VirtualMachine", "Datastore"}, nil)
		if err != nil {
			return err
		}

		for _, ref := range refs {
			err = m.Set(ctx, ref, field.Key, "true") // sets the custom value "backup=true" on specific types
			if err != nil {
				return err
			}
		}

		// filter used to find objects with "backup=true"
		filter := property.Match{"customValue": &types.CustomFieldStringValue{
			CustomFieldValue: types.CustomFieldValue{Key: field.Key},
			Value:            "true",
		}}

		var objs []mo.ManagedEntity
		err = v.RetrieveWithFilter(ctx, any, []string{"name", "customValue"}, &objs, filter)
		if err != nil {
			return err
		}

		fmt.Printf("backup %d of %d objects", len(objs), len(all))
		return v.Destroy(ctx)
	})
}
Output:

backup 5 of 22 objects

type CustomizationSpecManager

type CustomizationSpecManager struct {
	Common
}

func NewCustomizationSpecManager

func NewCustomizationSpecManager(c *vim25.Client) *CustomizationSpecManager

func (CustomizationSpecManager) CreateCustomizationSpec

func (cs CustomizationSpecManager) CreateCustomizationSpec(ctx context.Context, item types.CustomizationSpecItem) error

func (CustomizationSpecManager) CustomizationSpecItemToXml

func (cs CustomizationSpecManager) CustomizationSpecItemToXml(ctx context.Context, item types.CustomizationSpecItem) (string, error)

func (CustomizationSpecManager) DeleteCustomizationSpec

func (cs CustomizationSpecManager) DeleteCustomizationSpec(ctx context.Context, name string) error

func (CustomizationSpecManager) DoesCustomizationSpecExist

func (cs CustomizationSpecManager) DoesCustomizationSpecExist(ctx context.Context, name string) (bool, error)

func (CustomizationSpecManager) DuplicateCustomizationSpec

func (cs CustomizationSpecManager) DuplicateCustomizationSpec(ctx context.Context, name string, newName string) error

func (CustomizationSpecManager) GetCustomizationSpec

func (cs CustomizationSpecManager) GetCustomizationSpec(ctx context.Context, name string) (*types.CustomizationSpecItem, error)

func (CustomizationSpecManager) Info added in v0.22.0

Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/object"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		m := object.NewCustomizationSpecManager(c)
		info, err := m.Info(ctx)
		if err != nil {
			return err
		}

		for i := range info {
			item, err := m.GetCustomizationSpec(ctx, info[i].Name)
			if err != nil {
				return err
			}
			fmt.Printf("%s=%T\n", item.Info.Name, item.Spec.Identity)
		}
		return nil
	})
}
Output:

vcsim-linux=*types.CustomizationLinuxPrep
vcsim-linux-static=*types.CustomizationLinuxPrep
vcsim-windows-static=*types.CustomizationSysprep
vcsim-windows-domain=*types.CustomizationSysprep

func (CustomizationSpecManager) OverwriteCustomizationSpec

func (cs CustomizationSpecManager) OverwriteCustomizationSpec(ctx context.Context, item types.CustomizationSpecItem) error

func (CustomizationSpecManager) RenameCustomizationSpec

func (cs CustomizationSpecManager) RenameCustomizationSpec(ctx context.Context, name string, newName string) error

func (CustomizationSpecManager) XmlToCustomizationSpecItem

func (cs CustomizationSpecManager) XmlToCustomizationSpecItem(ctx context.Context, xml string) (*types.CustomizationSpecItem, error)

type Datacenter

type Datacenter struct {
	Common
}

func NewDatacenter

func NewDatacenter(c *vim25.Client, ref types.ManagedObjectReference) *Datacenter

func (Datacenter) Destroy

func (d Datacenter) Destroy(ctx context.Context) (*Task, error)

func (*Datacenter) Folders

func (d *Datacenter) Folders(ctx context.Context) (*DatacenterFolders, error)

func (Datacenter) PowerOnVM added in v0.17.0

func (d Datacenter) PowerOnVM(ctx context.Context, vm []types.ManagedObjectReference, option ...types.BaseOptionValue) (*Task, error)

PowerOnVM powers on multiple virtual machines with a single vCenter call. If called against ESX, serially powers on the list of VMs and the returned *Task will always be nil.

type DatacenterFolders

type DatacenterFolders struct {
	VmFolder        *Folder
	HostFolder      *Folder
	DatastoreFolder *Folder
	NetworkFolder   *Folder
}

type Datastore

type Datastore struct {
	Common

	DatacenterPath string
}

func NewDatastore

func NewDatastore(c *vim25.Client, ref types.ManagedObjectReference) *Datastore

func (Datastore) AttachedClusterHosts added in v0.4.0

func (d Datastore) AttachedClusterHosts(ctx context.Context, cluster *ComputeResource) ([]*HostSystem, error)

AttachedClusterHosts returns hosts that have this Datastore attached, accessible and writable and are members of the given cluster.

func (Datastore) AttachedHosts added in v0.3.0

func (d Datastore) AttachedHosts(ctx context.Context) ([]*HostSystem, error)

AttachedHosts returns hosts that have this Datastore attached, accessible and writable.

func (Datastore) Browser

func (d Datastore) Browser(ctx context.Context) (*HostDatastoreBrowser, error)

func (Datastore) Download added in v0.6.0

func (d Datastore) Download(ctx context.Context, path string, param *soap.Download) (io.ReadCloser, int64, error)

Download via soap.Download with an http service ticket

func (Datastore) DownloadFile added in v0.3.0

func (d Datastore) DownloadFile(ctx context.Context, path string, file string, param *soap.Download) error

DownloadFile via soap.Download with an http service ticket

func (*Datastore) FindInventoryPath added in v0.34.0

func (d *Datastore) FindInventoryPath(ctx context.Context) error

FindInventoryPath sets InventoryPath and DatacenterPath, needed by NewURL() to compose an upload/download endpoint URL

func (Datastore) HostContext added in v0.12.0

func (d Datastore) HostContext(ctx context.Context, host *HostSystem) context.Context

HostContext returns a Context where the given host will be used for datastore HTTP access via the ServiceTicket method.

func (Datastore) NewFileManager added in v0.13.0

func (d Datastore) NewFileManager(dc *Datacenter, force bool) *DatastoreFileManager

NewFileManager creates a new instance of DatastoreFileManager

func (Datastore) NewURL added in v0.12.0

func (d Datastore) NewURL(path string) *url.URL

NewURL constructs a url.URL with the given file path for datastore access over HTTP.

func (Datastore) Open added in v0.9.0

func (d Datastore) Open(ctx context.Context, name string) (*DatastoreFile, error)

Open opens the named file relative to the Datastore.

func (Datastore) Path

func (d Datastore) Path(path string) string

func (Datastore) ServiceTicket added in v0.3.0

func (d Datastore) ServiceTicket(ctx context.Context, path string, method string) (*url.URL, *http.Cookie, error)

ServiceTicket obtains a ticket via AcquireGenericServiceTicket and returns it an http.Cookie with the url.URL that can be used along with the ticket cookie to access the given path. An host is chosen at random unless the the given Context was created with a specific host via the HostContext method.

func (Datastore) Stat added in v0.3.0

func (d Datastore) Stat(ctx context.Context, file string) (types.BaseFileInfo, error)

func (Datastore) Type added in v0.4.0

Type returns the type of file system volume.

func (Datastore) Upload added in v0.3.0

func (d Datastore) Upload(ctx context.Context, f io.Reader, path string, param *soap.Upload) error

Upload via soap.Upload with an http service ticket

func (Datastore) UploadFile added in v0.3.0

func (d Datastore) UploadFile(ctx context.Context, file string, path string, param *soap.Upload) error

UploadFile via soap.Upload with an http service ticket

type DatastoreFile added in v0.9.0

type DatastoreFile struct {
	// contains filtered or unexported fields
}

DatastoreFile implements io.Reader, io.Seeker and io.Closer interfaces for datastore file access.

func (*DatastoreFile) Close added in v0.9.0

func (f *DatastoreFile) Close() error

Close closes the DatastoreFile.

func (*DatastoreFile) Follow added in v0.9.0

func (f *DatastoreFile) Follow(interval time.Duration) io.ReadCloser

Follow returns an io.ReadCloser to stream the file contents as data is appended.

func (*DatastoreFile) Read added in v0.9.0

func (f *DatastoreFile) Read(b []byte) (int, error)

Read reads up to len(b) bytes from the DatastoreFile.

func (*DatastoreFile) Seek added in v0.9.0

func (f *DatastoreFile) Seek(offset int64, whence int) (int64, error)

Seek sets the offset for the next Read on the DatastoreFile.

func (*DatastoreFile) Stat added in v0.9.0

func (f *DatastoreFile) Stat() (os.FileInfo, error)

Stat returns the os.FileInfo interface describing file.

func (*DatastoreFile) Tail added in v0.9.0

func (f *DatastoreFile) Tail(n int) error

Tail seeks to the position of the last N lines of the file.

func (*DatastoreFile) TailFunc added in v0.15.0

func (f *DatastoreFile) TailFunc(lines int, include func(line int, message string) bool) error

TailFunc will seek backwards in the datastore file until it hits a line that does not satisfy the supplied `include` function.

type DatastoreFileManager added in v0.13.0

type DatastoreFileManager struct {
	Datacenter         *Datacenter
	Datastore          *Datastore
	FileManager        *FileManager
	VirtualDiskManager *VirtualDiskManager

	Force            bool
	DatacenterTarget *Datacenter
}

DatastoreFileManager combines FileManager and VirtualDiskManager to manage files on a Datastore

func (*DatastoreFileManager) Copy added in v0.17.0

func (m *DatastoreFileManager) Copy(ctx context.Context, src string, dst string) error

Copy dispatches to the appropriate FileManager or VirtualDiskManager Copy method based on file name extension

func (*DatastoreFileManager) CopyFile added in v0.17.0

func (m *DatastoreFileManager) CopyFile(ctx context.Context, src string, dst string) error

CopyFile calls FileManager.CopyDatastoreFile

func (*DatastoreFileManager) Delete added in v0.13.0

func (m *DatastoreFileManager) Delete(ctx context.Context, name string) error

Delete dispatches to the appropriate Delete method based on file name extension

func (*DatastoreFileManager) DeleteFile added in v0.13.0

func (m *DatastoreFileManager) DeleteFile(ctx context.Context, name string) error

DeleteFile calls FileManager.DeleteDatastoreFile

func (*DatastoreFileManager) DeleteVirtualDisk added in v0.13.0

func (m *DatastoreFileManager) DeleteVirtualDisk(ctx context.Context, name string) error

DeleteVirtualDisk calls VirtualDiskManager.DeleteVirtualDisk Regardless of the Datastore type, DeleteVirtualDisk will fail if 'ddb.deletable=false', so if Force=true this method attempts to set 'ddb.deletable=true' before starting the delete task.

func (*DatastoreFileManager) Move added in v0.16.0

func (m *DatastoreFileManager) Move(ctx context.Context, src string, dst string) error

Move dispatches to the appropriate FileManager or VirtualDiskManager Move method based on file name extension

func (*DatastoreFileManager) MoveFile added in v0.17.0

func (m *DatastoreFileManager) MoveFile(ctx context.Context, src string, dst string) error

MoveFile calls FileManager.MoveDatastoreFile

func (*DatastoreFileManager) Path added in v0.13.0

func (m *DatastoreFileManager) Path(name string) *DatastorePath

Path converts path name to a DatastorePath

func (*DatastoreFileManager) WithProgress added in v0.17.0

type DatastoreNamespaceManager added in v0.7.0

type DatastoreNamespaceManager struct {
	Common
}

func NewDatastoreNamespaceManager added in v0.7.0

func NewDatastoreNamespaceManager(c *vim25.Client) *DatastoreNamespaceManager

func (DatastoreNamespaceManager) ConvertNamespacePathToUuidPath added in v0.40.0

func (nm DatastoreNamespaceManager) ConvertNamespacePathToUuidPath(ctx context.Context, dc *Datacenter, datastoreURL string) (string, error)

func (DatastoreNamespaceManager) CreateDirectory added in v0.7.0

func (nm DatastoreNamespaceManager) CreateDirectory(ctx context.Context, ds *Datastore, displayName string, policy string) (string, error)

CreateDirectory creates a top-level directory on the given vsan datastore, using the given user display name hint and opaque storage policy.

func (DatastoreNamespaceManager) DeleteDirectory added in v0.7.0

func (nm DatastoreNamespaceManager) DeleteDirectory(ctx context.Context, dc *Datacenter, datastorePath string) error

DeleteDirectory deletes the given top-level directory from a vsan datastore.

type DatastoreNoSuchDirectoryError added in v0.3.0

type DatastoreNoSuchDirectoryError struct {
	// contains filtered or unexported fields
}

DatastoreNoSuchDirectoryError is returned when a directory could not be found.

func (DatastoreNoSuchDirectoryError) Error added in v0.3.0

type DatastoreNoSuchFileError added in v0.3.0

type DatastoreNoSuchFileError struct {
	// contains filtered or unexported fields
}

DatastoreNoSuchFileError is returned when a file could not be found.

func (DatastoreNoSuchFileError) Error added in v0.3.0

func (e DatastoreNoSuchFileError) Error() string

type DatastorePath added in v0.12.1

type DatastorePath struct {
	Datastore string
	Path      string
}

DatastorePath contains the components of a datastore path.

func (*DatastorePath) FromString added in v0.12.1

func (p *DatastorePath) FromString(s string) bool

FromString parses a datastore path. Returns true if the path could be parsed, false otherwise.

func (*DatastorePath) IsVMDK added in v0.16.0

func (p *DatastorePath) IsVMDK() bool

IsVMDK returns true if Path has a ".vmdk" extension

func (*DatastorePath) String added in v0.12.1

func (p *DatastorePath) String() string

String formats a datastore path.

type DiagnosticLog added in v0.12.1

type DiagnosticLog struct {
	Key  string
	Host *HostSystem

	Start int32
	// contains filtered or unexported fields
}

DiagnosticLog wraps DiagnosticManager.BrowseLog

func (*DiagnosticLog) Copy added in v0.12.1

func (l *DiagnosticLog) Copy(ctx context.Context, w io.Writer) (int, error)

Copy log starting from l.Start to the given io.Writer Returns on error or when end of log is reached.

func (*DiagnosticLog) Seek added in v0.12.1

func (l *DiagnosticLog) Seek(ctx context.Context, nlines int32) error

Seek to log position starting at the last nlines of the log

type DiagnosticManager added in v0.3.0

type DiagnosticManager struct {
	Common
}

func NewDiagnosticManager added in v0.3.0

func NewDiagnosticManager(c *vim25.Client) *DiagnosticManager

func (DiagnosticManager) BrowseLog added in v0.3.0

func (m DiagnosticManager) BrowseLog(ctx context.Context, host *HostSystem, key string, start, lines int32) (*types.DiagnosticManagerLogHeader, error)

func (DiagnosticManager) GenerateLogBundles added in v0.3.0

func (m DiagnosticManager) GenerateLogBundles(ctx context.Context, includeDefault bool, host []*HostSystem) (*Task, error)

func (DiagnosticManager) Log added in v0.12.1

func (DiagnosticManager) QueryDescriptions added in v0.3.0

type DisabledMethodRequest added in v0.15.0

type DisabledMethodRequest struct {
	Method string `xml:"method"`
	Reason string `xml:"reasonId"`
}

type DistributedVirtualPortgroup

type DistributedVirtualPortgroup struct {
	Common
}

func (DistributedVirtualPortgroup) EthernetCardBackingInfo

EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this DistributedVirtualPortgroup

func (DistributedVirtualPortgroup) GetInventoryPath added in v0.22.0

func (p DistributedVirtualPortgroup) GetInventoryPath() string

func (DistributedVirtualPortgroup) Reconfigure added in v0.11.0

type DistributedVirtualSwitch

type DistributedVirtualSwitch struct {
	Common
}

func (DistributedVirtualSwitch) AddPortgroup added in v0.3.0

func (DistributedVirtualSwitch) EthernetCardBackingInfo added in v0.3.0

func (DistributedVirtualSwitch) FetchDVPorts added in v0.16.0

func (DistributedVirtualSwitch) GetInventoryPath added in v0.22.0

func (s DistributedVirtualSwitch) GetInventoryPath() string

func (DistributedVirtualSwitch) Reconfigure added in v0.3.0

func (DistributedVirtualSwitch) ReconfigureDVPort added in v0.22.0

func (s DistributedVirtualSwitch) ReconfigureDVPort(ctx context.Context, spec []types.DVPortConfigSpec) (*Task, error)

func (DistributedVirtualSwitch) ReconfigureLACP added in v0.28.0

func (s DistributedVirtualSwitch) ReconfigureLACP(ctx context.Context, spec []types.VMwareDvsLacpGroupSpec) (*Task, error)

type EnvironmentBrowser added in v0.32.0

type EnvironmentBrowser struct {
	Common
}

func NewEnvironmentBrowser added in v0.32.0

func NewEnvironmentBrowser(c *vim25.Client, ref types.ManagedObjectReference) *EnvironmentBrowser

func (EnvironmentBrowser) QueryConfigOption added in v0.32.0

func (EnvironmentBrowser) QueryConfigOptionDescriptor added in v0.32.0

func (b EnvironmentBrowser) QueryConfigOptionDescriptor(ctx context.Context) ([]types.VirtualMachineConfigOptionDescriptor, error)

func (EnvironmentBrowser) QueryConfigTarget added in v0.32.0

func (b EnvironmentBrowser) QueryConfigTarget(ctx context.Context, host *HostSystem) (*types.ConfigTarget, error)

func (EnvironmentBrowser) QueryTargetCapabilities added in v0.32.0

func (b EnvironmentBrowser) QueryTargetCapabilities(ctx context.Context, host *HostSystem) (*types.HostCapability, error)

type ExtensionManager added in v0.3.0

type ExtensionManager struct {
	Common
}

func GetExtensionManager added in v0.3.0

func GetExtensionManager(c *vim25.Client) (*ExtensionManager, error)

GetExtensionManager wraps NewExtensionManager, returning ErrNotSupported when the client is not connected to a vCenter instance.

func NewExtensionManager added in v0.3.0

func NewExtensionManager(c *vim25.Client) *ExtensionManager

func (ExtensionManager) Find added in v0.3.0

func (ExtensionManager) List added in v0.3.0

func (ExtensionManager) Register added in v0.3.0

func (m ExtensionManager) Register(ctx context.Context, extension types.Extension) error

func (ExtensionManager) SetCertificate added in v0.3.0

func (m ExtensionManager) SetCertificate(ctx context.Context, key string, certificatePem string) error

func (ExtensionManager) Unregister added in v0.3.0

func (m ExtensionManager) Unregister(ctx context.Context, key string) error

func (ExtensionManager) Update added in v0.3.0

func (m ExtensionManager) Update(ctx context.Context, extension types.Extension) error

type FileManager

type FileManager struct {
	Common
}

func NewFileManager

func NewFileManager(c *vim25.Client) *FileManager

func (FileManager) CopyDatastoreFile

func (f FileManager) CopyDatastoreFile(ctx context.Context, sourceName string, sourceDatacenter *Datacenter, destinationName string, destinationDatacenter *Datacenter, force bool) (*Task, error)

func (FileManager) DeleteDatastoreFile

func (f FileManager) DeleteDatastoreFile(ctx context.Context, name string, dc *Datacenter) (*Task, error)

DeleteDatastoreFile deletes the specified file or folder from the datastore.

func (FileManager) MakeDirectory

func (f FileManager) MakeDirectory(ctx context.Context, name string, dc *Datacenter, createParentDirectories bool) error

MakeDirectory creates a folder using the specified name.

func (FileManager) MoveDatastoreFile

func (f FileManager) MoveDatastoreFile(ctx context.Context, sourceName string, sourceDatacenter *Datacenter, destinationName string, destinationDatacenter *Datacenter, force bool) (*Task, error)

type Folder

type Folder struct {
	Common
}

func NewFolder

func NewFolder(c *vim25.Client, ref types.ManagedObjectReference) *Folder

func NewRootFolder

func NewRootFolder(c *vim25.Client) *Folder

func (Folder) AddStandaloneHost

func (f Folder) AddStandaloneHost(ctx context.Context, spec types.HostConnectSpec, addConnected bool, license *string, compResSpec *types.BaseComputeResourceConfigSpec) (*Task, error)

func (Folder) Children

func (f Folder) Children(ctx context.Context) ([]Reference, error)

func (Folder) CreateCluster

func (f Folder) CreateCluster(ctx context.Context, cluster string, spec types.ClusterConfigSpecEx) (*ClusterComputeResource, error)

func (Folder) CreateDVS added in v0.3.0

func (f Folder) CreateDVS(ctx context.Context, spec types.DVSCreateSpec) (*Task, error)

func (Folder) CreateDatacenter

func (f Folder) CreateDatacenter(ctx context.Context, datacenter string) (*Datacenter, error)

func (Folder) CreateFolder

func (f Folder) CreateFolder(ctx context.Context, name string) (*Folder, error)

func (Folder) CreateStoragePod added in v0.8.0

func (f Folder) CreateStoragePod(ctx context.Context, name string) (*StoragePod, error)

func (Folder) CreateVM

func (f Folder) CreateVM(ctx context.Context, config types.VirtualMachineConfigSpec, pool *ResourcePool, host *HostSystem) (*Task, error)
Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/object"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/types"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		finder := find.NewFinder(c)
		dc, err := finder.Datacenter(ctx, "DC0")
		if err != nil {
			return err
		}

		finder.SetDatacenter(dc)

		folders, err := dc.Folders(ctx)
		if err != nil {
			return err
		}

		pool, err := finder.ResourcePool(ctx, "DC0_C0/Resources")
		if err != nil {
			return err
		}

		spec := types.VirtualMachineConfigSpec{
			Name:    "example-vm",
			GuestId: string(types.VirtualMachineGuestOsIdentifierOtherGuest),
			Files: &types.VirtualMachineFileInfo{
				VmPathName: "[LocalDS_0]",
			},
		}

		task, err := folders.VmFolder.CreateVM(ctx, spec, pool, nil)
		if err != nil {
			return err
		}

		info, err := task.WaitForResult(ctx)
		if err != nil {
			return err
		}

		vm := object.NewVirtualMachine(c, info.Result.(types.ManagedObjectReference))
		name, err := vm.ObjectName(ctx)
		if err != nil {
			return err
		}

		fmt.Println(name)

		return nil
	})
}
Output:

example-vm

func (Folder) MoveInto added in v0.6.0

func (f Folder) MoveInto(ctx context.Context, list []types.ManagedObjectReference) (*Task, error)

func (Folder) PlaceVmsXCluster added in v0.27.4

func (Folder) RegisterVM

func (f Folder) RegisterVM(ctx context.Context, path string, name string, asTemplate bool, pool *ResourcePool, host *HostSystem) (*Task, error)

type HostAccountManager added in v0.6.0

type HostAccountManager struct {
	Common
}

func NewHostAccountManager added in v0.6.0

func NewHostAccountManager(c *vim25.Client, ref types.ManagedObjectReference) *HostAccountManager

func (HostAccountManager) Create added in v0.6.0

func (HostAccountManager) Remove added in v0.6.0

func (m HostAccountManager) Remove(ctx context.Context, userName string) error

func (HostAccountManager) Update added in v0.6.0

type HostCertificateInfo added in v0.10.0

type HostCertificateInfo struct {
	types.HostCertificateManagerCertificateInfo

	ThumbprintSHA1   string `json:"thumbprintSHA1"`
	ThumbprintSHA256 string `json:"thumbprintSHA256"`

	Err         error             `json:"err"`
	Certificate *x509.Certificate `json:"-"`
	// contains filtered or unexported fields
}

HostCertificateInfo provides helpers for types.HostCertificateManagerCertificateInfo

func (*HostCertificateInfo) FromCertificate added in v0.10.0

func (info *HostCertificateInfo) FromCertificate(cert *x509.Certificate) *HostCertificateInfo

FromCertificate converts x509.Certificate to HostCertificateInfo

func (*HostCertificateInfo) FromPEM added in v0.38.0

func (info *HostCertificateInfo) FromPEM(cert []byte) (*HostCertificateInfo, error)

func (*HostCertificateInfo) FromURL added in v0.10.0

func (info *HostCertificateInfo) FromURL(u *url.URL, config *tls.Config) error

FromURL connects to the given URL.Host via tls.Dial with the given tls.Config and populates the HostCertificateInfo via tls.ConnectionState. If the certificate was verified with the given tls.Config, the Err field will be nil. Otherwise, Err will be set to the x509.UnknownAuthorityError or x509.HostnameError. If tls.Dial returns an error of any other type, that error is returned.

func (*HostCertificateInfo) IssuerName added in v0.10.0

func (info *HostCertificateInfo) IssuerName() *pkix.Name

IssuerName parses Issuer into a pkix.Name

func (*HostCertificateInfo) SubjectName added in v0.10.0

func (info *HostCertificateInfo) SubjectName() *pkix.Name

SubjectName parses Subject into a pkix.Name

func (*HostCertificateInfo) Write added in v0.10.0

func (info *HostCertificateInfo) Write(w io.Writer) error

Write outputs info similar to the Chrome Certificate Viewer.

type HostCertificateManager added in v0.10.0

type HostCertificateManager struct {
	Common
	Host *HostSystem
}

HostCertificateManager provides helper methods around the HostSystem.ConfigManager.CertificateManager

func NewHostCertificateManager added in v0.10.0

NewHostCertificateManager creates a new HostCertificateManager helper

func (HostCertificateManager) CertificateInfo added in v0.10.0

func (m HostCertificateManager) CertificateInfo(ctx context.Context) (*HostCertificateInfo, error)

CertificateInfo wraps the host CertificateManager certificateInfo property with the HostCertificateInfo helper. The ThumbprintSHA1 field is set to HostSystem.Summary.Config.SslThumbprint if the host system is managed by a vCenter.

func (HostCertificateManager) GenerateCertificateSigningRequest added in v0.10.0

func (m HostCertificateManager) GenerateCertificateSigningRequest(ctx context.Context, useIPAddressAsCommonName bool) (string, error)

GenerateCertificateSigningRequest requests the host system to generate a certificate-signing request (CSR) for itself. The CSR is then typically provided to a Certificate Authority to sign and issue the SSL certificate for the host system. Use InstallServerCertificate to import this certificate.

func (HostCertificateManager) GenerateCertificateSigningRequestByDn added in v0.10.0

func (m HostCertificateManager) GenerateCertificateSigningRequestByDn(ctx context.Context, distinguishedName string) (string, error)

GenerateCertificateSigningRequestByDn requests the host system to generate a certificate-signing request (CSR) for itself. Alternative version similar to GenerateCertificateSigningRequest but takes a Distinguished Name (DN) as a parameter.

func (HostCertificateManager) InstallServerCertificate added in v0.10.0

func (m HostCertificateManager) InstallServerCertificate(ctx context.Context, cert string) error

InstallServerCertificate imports the given SSL certificate to the host system.

func (HostCertificateManager) ListCACertificateRevocationLists added in v0.10.0

func (m HostCertificateManager) ListCACertificateRevocationLists(ctx context.Context) ([]string, error)

ListCACertificateRevocationLists returns the SSL CRLs of Certificate Authorities that are trusted by the host system.

func (HostCertificateManager) ListCACertificates added in v0.10.0

func (m HostCertificateManager) ListCACertificates(ctx context.Context) ([]string, error)

ListCACertificates returns the SSL certificates of Certificate Authorities that are trusted by the host system.

func (HostCertificateManager) ReplaceCACertificatesAndCRLs added in v0.10.0

func (m HostCertificateManager) ReplaceCACertificatesAndCRLs(ctx context.Context, caCert []string, caCrl []string) error

ReplaceCACertificatesAndCRLs replaces the trusted CA certificates and CRL used by the host system. These determine whether the server can verify the identity of an external entity.

type HostConfigManager

type HostConfigManager struct {
	Common
}

func (HostConfigManager) AccountManager added in v0.6.0

func (m HostConfigManager) AccountManager(ctx context.Context) (*HostAccountManager, error)

func (HostConfigManager) CertificateManager added in v0.10.0

func (m HostConfigManager) CertificateManager(ctx context.Context) (*HostCertificateManager, error)

func (HostConfigManager) DatastoreSystem added in v0.3.0

func (m HostConfigManager) DatastoreSystem(ctx context.Context) (*HostDatastoreSystem, error)

func (HostConfigManager) DateTimeSystem added in v0.10.0

func (m HostConfigManager) DateTimeSystem(ctx context.Context) (*HostDateTimeSystem, error)

func (HostConfigManager) FirewallSystem added in v0.3.0

func (m HostConfigManager) FirewallSystem(ctx context.Context) (*HostFirewallSystem, error)

func (HostConfigManager) NetworkSystem

func (m HostConfigManager) NetworkSystem(ctx context.Context) (*HostNetworkSystem, error)

func (HostConfigManager) OptionManager added in v0.6.0

func (m HostConfigManager) OptionManager(ctx context.Context) (*OptionManager, error)
Example
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/vmware/govmomi/object"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/view"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/types"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		m := view.NewManager(c)
		kind := []string{"HostSystem"}

		v, err := m.CreateContainerView(ctx, c.ServiceContent.RootFolder, kind, true)
		if err != nil {
			log.Fatal(err)
		}

		refs, err := v.Find(ctx, kind, nil)
		if err != nil {
			return err
		}

		setting := ""

		for _, ref := range refs {
			host := object.NewHostSystem(c, ref)
			m, err := host.ConfigManager().OptionManager(ctx)
			if err != nil {
				return err
			}

			opt := []types.BaseOptionValue{&types.OptionValue{
				Key:   "vcrun",
				Value: "Config.HostAgent.plugins.hostsvc.esxAdminsGroup",
			}}

			err = m.Update(ctx, opt)
			if err != nil {
				return err
			}

			opt, err = m.Query(ctx, "vcrun")
			if err != nil {
				return err
			}
			setting = opt[0].GetOptionValue().Value.(string)
		}

		fmt.Println(setting)

		return v.Destroy(ctx)
	})
}
Output:

Config.HostAgent.plugins.hostsvc.esxAdminsGroup

func (HostConfigManager) ServiceSystem added in v0.7.0

func (m HostConfigManager) ServiceSystem(ctx context.Context) (*HostServiceSystem, error)

func (HostConfigManager) StorageSystem added in v0.3.0

func (m HostConfigManager) StorageSystem(ctx context.Context) (*HostStorageSystem, error)

func (HostConfigManager) VirtualNicManager added in v0.3.0

func (m HostConfigManager) VirtualNicManager(ctx context.Context) (*HostVirtualNicManager, error)

func (HostConfigManager) VsanInternalSystem added in v0.13.0

func (m HostConfigManager) VsanInternalSystem(ctx context.Context) (*HostVsanInternalSystem, error)

func (HostConfigManager) VsanSystem added in v0.3.0

func (m HostConfigManager) VsanSystem(ctx context.Context) (*HostVsanSystem, error)

type HostDatastoreBrowser

type HostDatastoreBrowser struct {
	Common
}

func (HostDatastoreBrowser) SearchDatastore

func (b HostDatastoreBrowser) SearchDatastore(ctx context.Context, datastorePath string, searchSpec *types.HostDatastoreBrowserSearchSpec) (*Task, error)

func (HostDatastoreBrowser) SearchDatastoreSubFolders

func (b HostDatastoreBrowser) SearchDatastoreSubFolders(ctx context.Context, datastorePath string, searchSpec *types.HostDatastoreBrowserSearchSpec) (*Task, error)

type HostDatastoreSystem added in v0.3.0

type HostDatastoreSystem struct {
	Common
}

func NewHostDatastoreSystem added in v0.3.0

func NewHostDatastoreSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostDatastoreSystem

func (HostDatastoreSystem) CreateLocalDatastore added in v0.7.0

func (s HostDatastoreSystem) CreateLocalDatastore(ctx context.Context, name string, path string) (*Datastore, error)

func (HostDatastoreSystem) CreateNasDatastore added in v0.3.0

func (s HostDatastoreSystem) CreateNasDatastore(ctx context.Context, spec types.HostNasVolumeSpec) (*Datastore, error)

func (HostDatastoreSystem) CreateVmfsDatastore added in v0.3.0

func (s HostDatastoreSystem) CreateVmfsDatastore(ctx context.Context, spec types.VmfsDatastoreCreateSpec) (*Datastore, error)

func (HostDatastoreSystem) QueryAvailableDisksForVmfs added in v0.3.0

func (s HostDatastoreSystem) QueryAvailableDisksForVmfs(ctx context.Context) ([]types.HostScsiDisk, error)

func (HostDatastoreSystem) QueryVmfsDatastoreCreateOptions added in v0.3.0

func (s HostDatastoreSystem) QueryVmfsDatastoreCreateOptions(ctx context.Context, devicePath string) ([]types.VmfsDatastoreOption, error)

func (HostDatastoreSystem) Remove added in v0.3.0

func (s HostDatastoreSystem) Remove(ctx context.Context, ds *Datastore) error

func (HostDatastoreSystem) ResignatureUnresolvedVmfsVolumes added in v0.21.0

func (s HostDatastoreSystem) ResignatureUnresolvedVmfsVolumes(ctx context.Context, devicePaths []string) (*Task, error)

type HostDateTimeSystem added in v0.10.0

type HostDateTimeSystem struct {
	Common
}

func NewHostDateTimeSystem added in v0.10.0

func NewHostDateTimeSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostDateTimeSystem

func (HostDateTimeSystem) Query added in v0.10.0

func (s HostDateTimeSystem) Query(ctx context.Context) (*time.Time, error)

func (HostDateTimeSystem) Update added in v0.10.0

func (s HostDateTimeSystem) Update(ctx context.Context, date time.Time) error

func (HostDateTimeSystem) UpdateConfig added in v0.10.0

func (s HostDateTimeSystem) UpdateConfig(ctx context.Context, config types.HostDateTimeConfig) error

type HostFirewallRulesetList added in v0.3.0

type HostFirewallRulesetList []types.HostFirewallRuleset

HostFirewallRulesetList provides helpers for a slice of types.HostFirewallRuleset

func (HostFirewallRulesetList) ByRule added in v0.3.0

ByRule returns a HostFirewallRulesetList where Direction, PortType and Protocol are equal and Port is within range

func (HostFirewallRulesetList) Disabled added in v0.3.0

Disabled returns a HostFirewallRulesetList with disabled rules

func (HostFirewallRulesetList) Enabled added in v0.3.0

Enabled returns a HostFirewallRulesetList with enabled rules

func (HostFirewallRulesetList) EnabledByRule added in v0.3.0

EnabledByRule returns a HostFirewallRulesetList with Match(rule) applied and filtered via Enabled() if enabled param is true, otherwise filtered via Disabled(). An error is returned if the resulting list is empty.

func (HostFirewallRulesetList) Keys added in v0.3.0

func (l HostFirewallRulesetList) Keys() []string

Keys returns the HostFirewallRuleset.Key for each ruleset in the list

type HostFirewallSystem added in v0.3.0

type HostFirewallSystem struct {
	Common
}

func NewHostFirewallSystem added in v0.3.0

func NewHostFirewallSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostFirewallSystem

func (HostFirewallSystem) DisableRuleset added in v0.3.0

func (s HostFirewallSystem) DisableRuleset(ctx context.Context, id string) error

func (HostFirewallSystem) EnableRuleset added in v0.3.0

func (s HostFirewallSystem) EnableRuleset(ctx context.Context, id string) error

func (HostFirewallSystem) Info added in v0.3.0

func (HostFirewallSystem) Refresh added in v0.3.0

func (s HostFirewallSystem) Refresh(ctx context.Context) error

type HostNetworkSystem

type HostNetworkSystem struct {
	Common
}

func (HostNetworkSystem) AddPortGroup

func (o HostNetworkSystem) AddPortGroup(ctx context.Context, portgrp types.HostPortGroupSpec) error

AddPortGroup wraps methods.AddPortGroup

func (HostNetworkSystem) AddServiceConsoleVirtualNic

func (o HostNetworkSystem) AddServiceConsoleVirtualNic(ctx context.Context, portgroup string, nic types.HostVirtualNicSpec) (string, error)

AddServiceConsoleVirtualNic wraps methods.AddServiceConsoleVirtualNic

func (HostNetworkSystem) AddVirtualNic

func (o HostNetworkSystem) AddVirtualNic(ctx context.Context, portgroup string, nic types.HostVirtualNicSpec) (string, error)

AddVirtualNic wraps methods.AddVirtualNic

func (HostNetworkSystem) AddVirtualSwitch

func (o HostNetworkSystem) AddVirtualSwitch(ctx context.Context, vswitchName string, spec *types.HostVirtualSwitchSpec) error

AddVirtualSwitch wraps methods.AddVirtualSwitch

func (HostNetworkSystem) QueryNetworkHint

func (o HostNetworkSystem) QueryNetworkHint(ctx context.Context, device []string) ([]types.PhysicalNicHintInfo, error)

QueryNetworkHint wraps methods.QueryNetworkHint

func (HostNetworkSystem) RefreshNetworkSystem

func (o HostNetworkSystem) RefreshNetworkSystem(ctx context.Context) error

RefreshNetworkSystem wraps methods.RefreshNetworkSystem

func (HostNetworkSystem) RemovePortGroup

func (o HostNetworkSystem) RemovePortGroup(ctx context.Context, pgName string) error

RemovePortGroup wraps methods.RemovePortGroup

func (HostNetworkSystem) RemoveServiceConsoleVirtualNic

func (o HostNetworkSystem) RemoveServiceConsoleVirtualNic(ctx context.Context, device string) error

RemoveServiceConsoleVirtualNic wraps methods.RemoveServiceConsoleVirtualNic

func (HostNetworkSystem) RemoveVirtualNic

func (o HostNetworkSystem) RemoveVirtualNic(ctx context.Context, device string) error

RemoveVirtualNic wraps methods.RemoveVirtualNic

func (HostNetworkSystem) RemoveVirtualSwitch

func (o HostNetworkSystem) RemoveVirtualSwitch(ctx context.Context, vswitchName string) error

RemoveVirtualSwitch wraps methods.RemoveVirtualSwitch

func (HostNetworkSystem) RestartServiceConsoleVirtualNic

func (o HostNetworkSystem) RestartServiceConsoleVirtualNic(ctx context.Context, device string) error

RestartServiceConsoleVirtualNic wraps methods.RestartServiceConsoleVirtualNic

func (HostNetworkSystem) UpdateConsoleIpRouteConfig

func (o HostNetworkSystem) UpdateConsoleIpRouteConfig(ctx context.Context, config types.BaseHostIpRouteConfig) error

UpdateConsoleIpRouteConfig wraps methods.UpdateConsoleIpRouteConfig

func (HostNetworkSystem) UpdateDnsConfig

func (o HostNetworkSystem) UpdateDnsConfig(ctx context.Context, config types.BaseHostDnsConfig) error

UpdateDnsConfig wraps methods.UpdateDnsConfig

func (HostNetworkSystem) UpdateIpRouteConfig

func (o HostNetworkSystem) UpdateIpRouteConfig(ctx context.Context, config types.BaseHostIpRouteConfig) error

UpdateIpRouteConfig wraps methods.UpdateIpRouteConfig

func (HostNetworkSystem) UpdateIpRouteTableConfig

func (o HostNetworkSystem) UpdateIpRouteTableConfig(ctx context.Context, config types.HostIpRouteTableConfig) error

UpdateIpRouteTableConfig wraps methods.UpdateIpRouteTableConfig

func (HostNetworkSystem) UpdateNetworkConfig

func (o HostNetworkSystem) UpdateNetworkConfig(ctx context.Context, config types.HostNetworkConfig, changeMode string) (*types.HostNetworkConfigResult, error)

UpdateNetworkConfig wraps methods.UpdateNetworkConfig

func (HostNetworkSystem) UpdatePhysicalNicLinkSpeed

func (o HostNetworkSystem) UpdatePhysicalNicLinkSpeed(ctx context.Context, device string, linkSpeed *types.PhysicalNicLinkInfo) error

UpdatePhysicalNicLinkSpeed wraps methods.UpdatePhysicalNicLinkSpeed

func (HostNetworkSystem) UpdatePortGroup

func (o HostNetworkSystem) UpdatePortGroup(ctx context.Context, pgName string, portgrp types.HostPortGroupSpec) error

UpdatePortGroup wraps methods.UpdatePortGroup

func (HostNetworkSystem) UpdateServiceConsoleVirtualNic

func (o HostNetworkSystem) UpdateServiceConsoleVirtualNic(ctx context.Context, device string, nic types.HostVirtualNicSpec) error

UpdateServiceConsoleVirtualNic wraps methods.UpdateServiceConsoleVirtualNic

func (HostNetworkSystem) UpdateVirtualNic

func (o HostNetworkSystem) UpdateVirtualNic(ctx context.Context, device string, nic types.HostVirtualNicSpec) error

UpdateVirtualNic wraps methods.UpdateVirtualNic

func (HostNetworkSystem) UpdateVirtualSwitch

func (o HostNetworkSystem) UpdateVirtualSwitch(ctx context.Context, vswitchName string, spec types.HostVirtualSwitchSpec) error

UpdateVirtualSwitch wraps methods.UpdateVirtualSwitch

type HostServiceSystem added in v0.7.0

type HostServiceSystem struct {
	Common
}

func NewHostServiceSystem added in v0.7.0

func NewHostServiceSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostServiceSystem

func (HostServiceSystem) Restart added in v0.7.0

func (s HostServiceSystem) Restart(ctx context.Context, id string) error

func (HostServiceSystem) Service added in v0.7.0

func (HostServiceSystem) Start added in v0.7.0

func (s HostServiceSystem) Start(ctx context.Context, id string) error

func (HostServiceSystem) Stop added in v0.7.0

func (s HostServiceSystem) Stop(ctx context.Context, id string) error

func (HostServiceSystem) UpdatePolicy added in v0.7.0

func (s HostServiceSystem) UpdatePolicy(ctx context.Context, id string, policy string) error

type HostStorageSystem added in v0.3.0

type HostStorageSystem struct {
	Common
}

func NewHostStorageSystem added in v0.3.0

func NewHostStorageSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostStorageSystem

func (HostStorageSystem) AttachScsiLun added in v0.17.0

func (s HostStorageSystem) AttachScsiLun(ctx context.Context, uuid string) error

func (HostStorageSystem) ComputeDiskPartitionInfo added in v0.3.0

func (s HostStorageSystem) ComputeDiskPartitionInfo(ctx context.Context, devicePath string, layout types.HostDiskPartitionLayout) (*types.HostDiskPartitionInfo, error)

func (HostStorageSystem) MarkAsLocal added in v0.7.0

func (s HostStorageSystem) MarkAsLocal(ctx context.Context, uuid string) (*Task, error)

func (HostStorageSystem) MarkAsNonLocal added in v0.7.0

func (s HostStorageSystem) MarkAsNonLocal(ctx context.Context, uuid string) (*Task, error)

func (HostStorageSystem) MarkAsNonSsd added in v0.7.0

func (s HostStorageSystem) MarkAsNonSsd(ctx context.Context, uuid string) (*Task, error)

func (HostStorageSystem) MarkAsSsd added in v0.7.0

func (s HostStorageSystem) MarkAsSsd(ctx context.Context, uuid string) (*Task, error)

func (HostStorageSystem) QueryUnresolvedVmfsVolumes added in v0.21.0

func (s HostStorageSystem) QueryUnresolvedVmfsVolumes(ctx context.Context) ([]types.HostUnresolvedVmfsVolume, error)

func (HostStorageSystem) Refresh added in v0.16.0

func (s HostStorageSystem) Refresh(ctx context.Context) error

func (HostStorageSystem) RescanAllHba added in v0.7.0

func (s HostStorageSystem) RescanAllHba(ctx context.Context) error

func (HostStorageSystem) RescanVmfs added in v0.17.0

func (s HostStorageSystem) RescanVmfs(ctx context.Context) error

func (HostStorageSystem) RetrieveDiskPartitionInfo added in v0.3.0

func (s HostStorageSystem) RetrieveDiskPartitionInfo(ctx context.Context, devicePath string) (*types.HostDiskPartitionInfo, error)

func (HostStorageSystem) UnmountVmfsVolume added in v0.21.0

func (s HostStorageSystem) UnmountVmfsVolume(ctx context.Context, vmfsUuid string) error

func (HostStorageSystem) UpdateDiskPartitionInfo added in v0.3.0

func (s HostStorageSystem) UpdateDiskPartitionInfo(ctx context.Context, devicePath string, spec types.HostDiskPartitionSpec) error

type HostSystem

type HostSystem struct {
	Common
}

func NewHostSystem

func NewHostSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostSystem

func (HostSystem) ConfigManager

func (h HostSystem) ConfigManager() *HostConfigManager

func (HostSystem) Disconnect added in v0.3.0

func (h HostSystem) Disconnect(ctx context.Context) (*Task, error)

func (HostSystem) EnterMaintenanceMode added in v0.3.0

func (h HostSystem) EnterMaintenanceMode(ctx context.Context, timeout int32, evacuate bool, spec *types.HostMaintenanceSpec) (*Task, error)

func (HostSystem) ExitMaintenanceMode added in v0.3.0

func (h HostSystem) ExitMaintenanceMode(ctx context.Context, timeout int32) (*Task, error)

func (HostSystem) ManagementIPs

func (h HostSystem) ManagementIPs(ctx context.Context) ([]net.IP, error)

func (HostSystem) Reconnect added in v0.3.0

func (h HostSystem) Reconnect(ctx context.Context, cnxSpec *types.HostConnectSpec, reconnectSpec *types.HostSystemReconnectSpec) (*Task, error)

func (HostSystem) ResourcePool

func (h HostSystem) ResourcePool(ctx context.Context) (*ResourcePool, error)

type HostVirtualNicManager added in v0.3.0

type HostVirtualNicManager struct {
	Common
	Host *HostSystem
}

func NewHostVirtualNicManager added in v0.3.0

func (HostVirtualNicManager) DeselectVnic added in v0.3.0

func (m HostVirtualNicManager) DeselectVnic(ctx context.Context, nicType string, device string) error

func (HostVirtualNicManager) Info added in v0.3.0

func (HostVirtualNicManager) SelectVnic added in v0.3.0

func (m HostVirtualNicManager) SelectVnic(ctx context.Context, nicType string, device string) error

type HostVsanInternalSystem added in v0.13.0

type HostVsanInternalSystem struct {
	Common
}

func NewHostVsanInternalSystem added in v0.13.0

func NewHostVsanInternalSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostVsanInternalSystem

func (HostVsanInternalSystem) DeleteVsanObjects added in v0.13.0

DeleteVsanObjects is internal and intended for troubleshooting/debugging only. WARNING: This API can be slow because we do IOs to all the objects. DOM won't allow access to objects which have lost quorum. Such objects can be deleted with the optional "force" flag. These objects may however re-appear with quorum if the absent components come back (network partition gets resolved, etc.)

func (HostVsanInternalSystem) GetVsanObjExtAttrs added in v0.13.0

func (m HostVsanInternalSystem) GetVsanObjExtAttrs(ctx context.Context, uuids []string) (map[string]VsanObjExtAttrs, error)

GetVsanObjExtAttrs is internal and intended for troubleshooting/debugging situations in the field. WARNING: This API can be slow because we do IOs (reads) to all the objects.

func (HostVsanInternalSystem) QueryVsanObjectUuidsByFilter added in v0.13.0

func (m HostVsanInternalSystem) QueryVsanObjectUuidsByFilter(ctx context.Context, uuids []string, limit int32, version int32) ([]string, error)

QueryVsanObjectUuidsByFilter returns vSAN DOM object uuids by filter.

type HostVsanSystem added in v0.3.0

type HostVsanSystem struct {
	Common
}

func NewHostVsanSystem added in v0.3.0

func NewHostVsanSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostVsanSystem

func (HostVsanSystem) Update added in v0.3.0

func (s HostVsanSystem) Update(ctx context.Context, config types.VsanHostConfigInfo) (*Task, error)

type Network

type Network struct {
	Common
}

func NewNetwork

func NewNetwork(c *vim25.Client, ref types.ManagedObjectReference) *Network

func (Network) EthernetCardBackingInfo

func (n Network) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error)

EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network

func (Network) GetInventoryPath added in v0.22.0

func (n Network) GetInventoryPath() string

type NetworkReference

type NetworkReference interface {
	Reference
	GetInventoryPath() string
	EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error)
}

The NetworkReference interface is implemented by managed objects which can be used as the backing for a VirtualEthernetCard.

type OpaqueNetwork added in v0.14.0

type OpaqueNetwork struct {
	Common
}

func NewOpaqueNetwork added in v0.14.0

func NewOpaqueNetwork(c *vim25.Client, ref types.ManagedObjectReference) *OpaqueNetwork

func (OpaqueNetwork) EthernetCardBackingInfo added in v0.14.0

func (n OpaqueNetwork) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error)

EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network

func (OpaqueNetwork) GetInventoryPath added in v0.22.0

func (n OpaqueNetwork) GetInventoryPath() string

func (OpaqueNetwork) Summary added in v0.23.0

Summary returns the mo.OpaqueNetwork.Summary property

type OptionManager added in v0.6.0

type OptionManager struct {
	Common
}

func NewOptionManager added in v0.6.0

func NewOptionManager(c *vim25.Client, ref types.ManagedObjectReference) *OptionManager

func (OptionManager) Query added in v0.6.0

func (m OptionManager) Query(ctx context.Context, name string) ([]types.BaseOptionValue, error)

func (OptionManager) Update added in v0.6.0

func (m OptionManager) Update(ctx context.Context, value []types.BaseOptionValue) error

type OptionValueList added in v0.38.0

type OptionValueList []types.BaseOptionValue

OptionValueList simplifies manipulation of properties that are arrays of types.BaseOptionValue, such as ExtraConfig.

func OptionValueListFromMap added in v0.38.0

func OptionValueListFromMap[T any](in map[string]T) OptionValueList

OptionValueListFromMap returns a new OptionValueList object from the provided map.

func (OptionValueList) Additions added in v0.38.0

Additions returns a diff that includes only the elements from the provided list that do not already exist.

func (OptionValueList) Diff added in v0.38.0

Diff returns a diff that includes the elements from the provided list that do not already exist or have different values.

func (OptionValueList) Get added in v0.38.0

func (ov OptionValueList) Get(key string) (any, bool)

Get returns the value if exists, otherwise nil is returned. The second return value is a flag indicating whether the value exists or nil was the actual value.

func (OptionValueList) GetString added in v0.38.0

func (ov OptionValueList) GetString(key string) (string, bool)

GetString returns the value as a string if the value exists.

func (OptionValueList) IsFalse added in v0.41.0

func (ov OptionValueList) IsFalse(key string) bool

IsFalse returns true if the specified key exists and has a value equal to 0, "0", "f", false, "false", "n", "no", or "off". All string comparisons are case-insensitive.

func (OptionValueList) IsTrue added in v0.41.0

func (ov OptionValueList) IsTrue(key string) bool

IsTrue returns true if the specified key exists with an empty value or value equal to 1, "1", "on", "t", true, "true", "y", or "yes". All string comparisons are case-insensitive.

func (OptionValueList) Join added in v0.38.0

Join combines this list with the provided one and returns the result, joining the two lists on their shared keys. Please note, Join(left, right) means the values from right will be appended to left, without overwriting any values that have shared keys. To overwrite the shared keys in left from right, use Join(right, left) instead.

func (OptionValueList) Map added in v0.38.0

func (ov OptionValueList) Map() map[string]any

Map returns the list of option values as a map. A nil value is returned if the list is empty.

func (OptionValueList) StringMap added in v0.38.0

func (ov OptionValueList) StringMap() map[string]string

StringMap returns the list of option values as a map where the values are strings. A nil value is returned if the list is empty.

type Reference

type Reference interface {
	Reference() types.ManagedObjectReference
}

type ResourcePool

type ResourcePool struct {
	Common
}

func (ResourcePool) Create

func (ResourcePool) CreateVApp

func (p ResourcePool) CreateVApp(ctx context.Context, name string, resSpec types.ResourceConfigSpec, configSpec types.VAppConfigSpec, folder *Folder) (*VirtualApp, error)

func (ResourcePool) Destroy

func (p ResourcePool) Destroy(ctx context.Context) (*Task, error)

func (ResourcePool) DestroyChildren

func (p ResourcePool) DestroyChildren(ctx context.Context) error

func (ResourcePool) ImportVApp

func (p ResourcePool) ImportVApp(ctx context.Context, spec types.BaseImportSpec, folder *Folder, host *HostSystem) (*nfc.Lease, error)

func (ResourcePool) Owner added in v0.22.0

func (p ResourcePool) Owner(ctx context.Context) (Reference, error)

Owner returns the ResourcePool owner as a ClusterComputeResource or ComputeResource.

Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		finder := find.NewFinder(c)

		for _, name := range []string{"DC0_H0_VM0", "DC0_C0_RP0_VM0"} {
			vm, err := finder.VirtualMachine(ctx, name)
			if err != nil {
				return err
			}

			pool, err := vm.ResourcePool(ctx)
			if err != nil {
				return err
			}

			owner, err := pool.Owner(ctx)
			if err != nil {
				return err
			}

			fmt.Printf("%s owner is a %T\n", name, owner)
		}

		return nil
	})
}
Output:

DC0_H0_VM0 owner is a *object.ComputeResource
DC0_C0_RP0_VM0 owner is a *object.ClusterComputeResource

func (ResourcePool) UpdateConfig

func (p ResourcePool) UpdateConfig(ctx context.Context, name string, config *types.ResourceConfigSpec) error

type SearchIndex

type SearchIndex struct {
	Common
}

func NewSearchIndex

func NewSearchIndex(c *vim25.Client) *SearchIndex

func (SearchIndex) FindAllByDnsName added in v0.22.0

func (s SearchIndex) FindAllByDnsName(ctx context.Context, dc *Datacenter, dnsName string, vmSearch bool) ([]Reference, error)

FindAllByDnsName finds all virtual machines or hosts by DNS name.

func (SearchIndex) FindAllByIp added in v0.22.0

func (s SearchIndex) FindAllByIp(ctx context.Context, dc *Datacenter, ip string, vmSearch bool) ([]Reference, error)

FindAllByIp finds all virtual machines or hosts by IP address.

func (SearchIndex) FindAllByUuid added in v0.22.0

func (s SearchIndex) FindAllByUuid(ctx context.Context, dc *Datacenter, uuid string, vmSearch bool, instanceUuid *bool) ([]Reference, error)

FindAllByUuid finds all virtual machines or hosts by UUID.

func (SearchIndex) FindByDatastorePath

func (s SearchIndex) FindByDatastorePath(ctx context.Context, dc *Datacenter, path string) (Reference, error)

FindByDatastorePath finds a virtual machine by its location on a datastore.

func (SearchIndex) FindByDnsName

func (s SearchIndex) FindByDnsName(ctx context.Context, dc *Datacenter, dnsName string, vmSearch bool) (Reference, error)

FindByDnsName finds a virtual machine or host by DNS name.

func (SearchIndex) FindByInventoryPath

func (s SearchIndex) FindByInventoryPath(ctx context.Context, path string) (Reference, error)

FindByInventoryPath finds a managed entity based on its location in the inventory.

func (SearchIndex) FindByIp

func (s SearchIndex) FindByIp(ctx context.Context, dc *Datacenter, ip string, vmSearch bool) (Reference, error)

FindByIp finds a virtual machine or host by IP address.

func (SearchIndex) FindByUuid

func (s SearchIndex) FindByUuid(ctx context.Context, dc *Datacenter, uuid string, vmSearch bool, instanceUuid *bool) (Reference, error)

FindByUuid finds a virtual machine or host by UUID.

func (SearchIndex) FindChild

func (s SearchIndex) FindChild(ctx context.Context, entity Reference, name string) (Reference, error)

FindChild finds a particular child based on a managed entity name.

type StoragePod

type StoragePod struct {
	*Folder
}

func NewStoragePod added in v0.4.0

func NewStoragePod(c *vim25.Client, ref types.ManagedObjectReference) *StoragePod

type StorageResourceManager

type StorageResourceManager struct {
	Common
}

func NewStorageResourceManager

func NewStorageResourceManager(c *vim25.Client) *StorageResourceManager

func (StorageResourceManager) ApplyStorageDrsRecommendation

func (sr StorageResourceManager) ApplyStorageDrsRecommendation(ctx context.Context, key []string) (*Task, error)

func (StorageResourceManager) ApplyStorageDrsRecommendationToPod

func (sr StorageResourceManager) ApplyStorageDrsRecommendationToPod(ctx context.Context, pod *StoragePod, key string) (*Task, error)

func (StorageResourceManager) CancelStorageDrsRecommendation

func (sr StorageResourceManager) CancelStorageDrsRecommendation(ctx context.Context, key []string) error

func (StorageResourceManager) ConfigureDatastoreIORM

func (sr StorageResourceManager) ConfigureDatastoreIORM(ctx context.Context, datastore *Datastore, spec types.StorageIORMConfigSpec, key string) (*Task, error)

func (StorageResourceManager) ConfigureStorageDrsForPod

func (sr StorageResourceManager) ConfigureStorageDrsForPod(ctx context.Context, pod *StoragePod, spec types.StorageDrsConfigSpec, modify bool) (*Task, error)

func (StorageResourceManager) QueryDatastorePerformanceSummary

func (sr StorageResourceManager) QueryDatastorePerformanceSummary(ctx context.Context, datastore *Datastore) ([]types.StoragePerformanceSummary, error)

func (StorageResourceManager) QueryIORMConfigOption

func (sr StorageResourceManager) QueryIORMConfigOption(ctx context.Context, host *HostSystem) (*types.StorageIORMConfigOption, error)

func (StorageResourceManager) RecommendDatastores

func (StorageResourceManager) RefreshStorageDrsRecommendation

func (sr StorageResourceManager) RefreshStorageDrsRecommendation(ctx context.Context, pod *StoragePod) error

type Task

type Task struct {
	Common
}

Task is a convenience wrapper around task.Task that keeps a reference to the client that was used to create it. This allows users to call the Wait() function with only a context parameter, instead of a context parameter, a soap.RoundTripper, and reference to the root property collector.

func NewTask

func NewTask(c *vim25.Client, ref types.ManagedObjectReference) *Task

func (*Task) Cancel added in v0.16.0

func (t *Task) Cancel(ctx context.Context) error

func (*Task) SetDescription added in v0.23.0

func (t *Task) SetDescription(ctx context.Context, description types.LocalizableMessage) error

SetDescription updates task description to describe the current phase of the task.

func (*Task) SetState added in v0.23.0

func (t *Task) SetState(ctx context.Context, state types.TaskInfoState, result types.AnyType, fault *types.LocalizedMethodFault) error

SetState sets task state and optionally sets results or fault, as appropriate for state.

func (*Task) UpdateProgress added in v0.23.0

func (t *Task) UpdateProgress(ctx context.Context, percentDone int) error

UpdateProgress Sets percentage done for this task and recalculates overall percentage done. If a percentDone value of less than zero or greater than 100 is specified, a value of zero or 100 respectively is used.

func (*Task) Wait

func (t *Task) Wait(ctx context.Context) error

Wait waits for a task to complete. NOTE: This method create a thread-safe PropertyCollector instance per-call, so it is thread safe. The downside of this approach is the additional resource usage on the vCenter side for each call.

func (*Task) WaitEx added in v0.35.0

func (t *Task) WaitEx(ctx context.Context) error

WaitEx waits for a task to complete. NOTE: This method use the same PropertyCollector instance in each call, thus reducing resource usage on the vCenter side. The downside of this approach is that this method is not thread safe.

func (*Task) WaitForResult

func (t *Task) WaitForResult(ctx context.Context, s ...progress.Sinker) (taskInfo *types.TaskInfo, result error)

WaitForResult wait for a task to complete. NOTE: This method create a thread-safe PropertyCollector instance per-call, so it is thread safe. The downside of this approach is the additional resource usage on the vCenter side for each call.

func (*Task) WaitForResultEx added in v0.35.0

func (t *Task) WaitForResultEx(ctx context.Context, s ...progress.Sinker) (*types.TaskInfo, error)

WaitForResultEx waits for a task to complete. NOTE: This method use the same PropertyCollector instance in each call, thus reducing resource usage on the vCenter side. The downside of this approach is that this method is not thread safe.

type TenantManager added in v0.28.0

type TenantManager struct {
	Common
}

func NewTenantManager added in v0.28.0

func NewTenantManager(c *vim25.Client) *TenantManager

func (TenantManager) MarkServiceProviderEntities added in v0.28.0

func (t TenantManager) MarkServiceProviderEntities(ctx context.Context, entities []types.ManagedObjectReference) error

func (TenantManager) RetrieveServiceProviderEntities added in v0.28.0

func (t TenantManager) RetrieveServiceProviderEntities(ctx context.Context) ([]types.ManagedObjectReference, error)

func (TenantManager) UnmarkServiceProviderEntities added in v0.28.0

func (t TenantManager) UnmarkServiceProviderEntities(ctx context.Context, entities []types.ManagedObjectReference) error

type VirtualApp

type VirtualApp struct {
	*ResourcePool
}

func NewVirtualApp

func NewVirtualApp(c *vim25.Client, ref types.ManagedObjectReference) *VirtualApp

func (VirtualApp) Clone added in v0.24.0

func (VirtualApp) CreateChildVM added in v0.13.0

func (p VirtualApp) CreateChildVM(ctx context.Context, config types.VirtualMachineConfigSpec, host *HostSystem) (*Task, error)

func (VirtualApp) PowerOff added in v0.13.0

func (p VirtualApp) PowerOff(ctx context.Context, force bool) (*Task, error)

func (VirtualApp) PowerOn added in v0.13.0

func (p VirtualApp) PowerOn(ctx context.Context) (*Task, error)

func (VirtualApp) Suspend added in v0.13.0

func (p VirtualApp) Suspend(ctx context.Context) (*Task, error)

func (VirtualApp) UpdateConfig added in v0.13.0

func (p VirtualApp) UpdateConfig(ctx context.Context, spec types.VAppConfigSpec) error

type VirtualDeviceList

type VirtualDeviceList []types.BaseVirtualDevice

VirtualDeviceList provides helper methods for working with a list of virtual devices.

func EthernetCardTypes

func EthernetCardTypes() VirtualDeviceList

EthernetCardTypes are used for adding a new ethernet card to a VM.

func SCSIControllerTypes

func SCSIControllerTypes() VirtualDeviceList

SCSIControllerTypes are used for adding a new SCSI controller to a VM.

func (VirtualDeviceList) AssignController

AssignController assigns a device to a controller.

func (VirtualDeviceList) BootOrder

BootOrder returns a list of devices which can be used to set boot order via VirtualMachine.SetBootOptions. The order can be any of "ethernet", "cdrom", "floppy" or "disk" or by specific device name. A value of "-" will clear the existing boot order on the VC/ESX side.

func (VirtualDeviceList) ChildDisk

func (l VirtualDeviceList) ChildDisk(parent *types.VirtualDisk) *types.VirtualDisk

ChildDisk creates a new VirtualDisk device, linked to the given parent disk, which can be added to a VM.

func (VirtualDeviceList) ConfigSpec added in v0.4.0

ConfigSpec creates a virtual machine configuration spec for the specified operation, for the list of devices in the device list.

func (VirtualDeviceList) Connect

func (l VirtualDeviceList) Connect(device types.BaseVirtualDevice) error

Connect changes the device to connected, returns an error if the device is not connectable.

func (VirtualDeviceList) ConnectSerialPort

func (l VirtualDeviceList) ConnectSerialPort(device *types.VirtualSerialPort, uri string, client bool, proxyuri string) *types.VirtualSerialPort

ConnectSerialPort connects a serial port to a server or client uri.

func (VirtualDeviceList) CreateCdrom

CreateCdrom creates a new VirtualCdrom device which can be added to a VM.

func (VirtualDeviceList) CreateDisk

CreateDisk creates a new VirtualDisk device which can be added to a VM.

func (VirtualDeviceList) CreateEthernetCard

CreateEthernetCard creates a new VirtualEthernetCard of the given name name and initialized with the given backing.

func (VirtualDeviceList) CreateFloppy

func (l VirtualDeviceList) CreateFloppy() (*types.VirtualFloppy, error)

CreateFloppy creates a new VirtualFloppy device which can be added to a VM.

func (VirtualDeviceList) CreateIDEController added in v0.4.0

func (l VirtualDeviceList) CreateIDEController() (types.BaseVirtualDevice, error)

CreateIDEController creates a new IDE controller.

func (VirtualDeviceList) CreateNVMEController added in v0.12.0

func (l VirtualDeviceList) CreateNVMEController() (types.BaseVirtualDevice, error)

CreateNVMEController creates a new NVMWE controller.

func (VirtualDeviceList) CreateSATAController added in v0.39.0

func (l VirtualDeviceList) CreateSATAController() (types.BaseVirtualDevice, error)

CreateSATAController creates a new SATA controller.

func (VirtualDeviceList) CreateSCSIController

func (l VirtualDeviceList) CreateSCSIController(name string) (types.BaseVirtualDevice, error)

CreateSCSIController creates a new SCSI controller of type name if given, otherwise defaults to lsilogic.

func (VirtualDeviceList) CreateSerialPort

func (l VirtualDeviceList) CreateSerialPort() (*types.VirtualSerialPort, error)

CreateSerialPort creates a new VirtualSerialPort device which can be added to a VM.

func (VirtualDeviceList) Disconnect

func (l VirtualDeviceList) Disconnect(device types.BaseVirtualDevice) error

Disconnect changes the device to disconnected, returns an error if the device is not connectable.

func (VirtualDeviceList) DisconnectSerialPort

func (l VirtualDeviceList) DisconnectSerialPort(device *types.VirtualSerialPort) *types.VirtualSerialPort

DisconnectSerialPort disconnects the serial port backing.

func (VirtualDeviceList) EjectImg

EjectImg removes the img file based backing and replaces with the default floppy backing.

func (VirtualDeviceList) EjectIso

func (l VirtualDeviceList) EjectIso(device *types.VirtualCdrom) *types.VirtualCdrom

EjectIso removes the iso file based backing and replaces with the default cdrom backing.

func (VirtualDeviceList) Find

Find returns the device matching the given name.

func (VirtualDeviceList) FindByKey

FindByKey returns the device matching the given key.

func (VirtualDeviceList) FindCdrom

func (l VirtualDeviceList) FindCdrom(name string) (*types.VirtualCdrom, error)

FindCdrom finds a cdrom device with the given name, defaulting to the first cdrom device if any.

func (VirtualDeviceList) FindDiskController

func (l VirtualDeviceList) FindDiskController(name string) (types.BaseVirtualController, error)

FindDiskController will find an existing ide or scsi disk controller.

func (VirtualDeviceList) FindFloppy

func (l VirtualDeviceList) FindFloppy(name string) (*types.VirtualFloppy, error)

FindFloppy finds a floppy device with the given name, defaulting to the first floppy device if any.

func (VirtualDeviceList) FindIDEController

func (l VirtualDeviceList) FindIDEController(name string) (*types.VirtualIDEController, error)

FindIDEController will find the named IDE controller if given, otherwise will pick an available controller. An error is returned if the named controller is not found or not an IDE controller. Or, if name is not given and no available controller can be found.

func (VirtualDeviceList) FindNVMEController added in v0.12.0

func (l VirtualDeviceList) FindNVMEController(name string) (*types.VirtualNVMEController, error)

FindNVMEController will find the named NVME controller if given, otherwise will pick an available controller. An error is returned if the named controller is not found or not an NVME controller. Or, if name is not given and no available controller can be found.

func (VirtualDeviceList) FindSATAController added in v0.39.0

func (l VirtualDeviceList) FindSATAController(name string) (types.BaseVirtualController, error)

FindSATAController will find the named SATA or AHCI controller if given, otherwise will pick an available controller. An error is returned if the named controller is not found or not a SATA or AHCI controller. Or, if name is not given and no available controller can be found.

func (VirtualDeviceList) FindSCSIController

func (l VirtualDeviceList) FindSCSIController(name string) (*types.VirtualSCSIController, error)

FindSCSIController will find the named SCSI controller if given, otherwise will pick an available controller. An error is returned if the named controller is not found or not an SCSI controller. Or, if name is not given and no available controller can be found.

func (VirtualDeviceList) FindSerialPort

func (l VirtualDeviceList) FindSerialPort(name string) (*types.VirtualSerialPort, error)

FindSerialPort finds a serial port device with the given name, defaulting to the first serial port device if any.

func (VirtualDeviceList) InsertImg

func (l VirtualDeviceList) InsertImg(device *types.VirtualFloppy, img string) *types.VirtualFloppy

InsertImg changes the floppy device backing to use the given img file.

func (VirtualDeviceList) InsertIso

func (l VirtualDeviceList) InsertIso(device *types.VirtualCdrom, iso string) *types.VirtualCdrom

InsertIso changes the cdrom device backing to use the given iso file.

func (VirtualDeviceList) Name

Name returns a stable, human-readable name for the given device

func (VirtualDeviceList) NewKey added in v0.4.0

func (l VirtualDeviceList) NewKey() int32

NewKey returns the key to use for adding a new device to the device list. The device list we're working with here may not be complete (e.g. when we're only adding new devices), so any positive keys could conflict with device keys that are already in use. To avoid this type of conflict, we can use negative keys here, which will be resolved to positive keys by vSphere as the reconfiguration is done.

func (VirtualDeviceList) PickController

PickController returns a controller of the given type(s). If no controllers are found or have no available slots, then nil is returned.

func (VirtualDeviceList) PrimaryMacAddress

func (l VirtualDeviceList) PrimaryMacAddress() string

PrimaryMacAddress returns the MacAddress field of the primary VirtualEthernetCard

func (VirtualDeviceList) Select

Select returns a new list containing all elements of the list for which the given func returns true.

func (VirtualDeviceList) SelectBootOrder

SelectBootOrder returns an ordered list of devices matching the given bootable device order

func (VirtualDeviceList) SelectByBackingInfo

SelectByBackingInfo returns a new list with devices matching the given backing info. If the value of backing is nil, any device with a backing of the same type will be returned.

Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/types"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		finder := find.NewFinder(c)
		vm, err := finder.VirtualMachine(ctx, "DC0_H0_VM0")
		if err != nil {
			return err
		}

		backing := &types.VirtualPCIPassthroughVmiopBackingInfo{
			Vgpu: "grid_v100-4q",
		}

		gpu := &types.VirtualPCIPassthrough{
			VirtualDevice: types.VirtualDevice{Backing: backing},
		}

		err = vm.AddDevice(ctx, gpu) // add a GPU to this VM
		if err != nil {
			return err
		}

		device, err := vm.Device(ctx) // get the VM's virtual device list
		if err != nil {
			return err
		}

		// find the device with the given backing info
		gpus := device.SelectByBackingInfo(backing)

		name := gpus[0].(*types.VirtualPCIPassthrough).Backing.(*types.VirtualPCIPassthroughVmiopBackingInfo).Vgpu

		fmt.Println(name)

		// example alternative to using SelectByBackingInfo for the use-case above:
		for i := range device {
			switch d := device[i].(type) {
			case *types.VirtualPCIPassthrough:
				switch b := d.Backing.(type) {
				case *types.VirtualPCIPassthroughVmiopBackingInfo:
					if b.Vgpu == backing.Vgpu {
						fmt.Println(b.Vgpu)
					}
				}
			}
		}

		return nil
	})

}
Output:

grid_v100-4q
grid_v100-4q

func (VirtualDeviceList) SelectByType

func (l VirtualDeviceList) SelectByType(deviceType types.BaseVirtualDevice) VirtualDeviceList

SelectByType returns a new list with devices that are equal to or extend the given type.

func (VirtualDeviceList) Type

Type returns a human-readable name for the given device

func (VirtualDeviceList) TypeName

func (l VirtualDeviceList) TypeName(device types.BaseVirtualDevice) string

TypeName returns the vmodl type name of the device

type VirtualDiskInfo added in v0.14.0

type VirtualDiskInfo struct {
	Name     string `xml:"unit>name"`
	DiskType string `xml:"diskType"`
	Parent   string `xml:"parent,omitempty"`
}

type VirtualDiskManager

type VirtualDiskManager struct {
	Common
}

func NewVirtualDiskManager

func NewVirtualDiskManager(c *vim25.Client) *VirtualDiskManager

func (VirtualDiskManager) CopyVirtualDisk

func (m VirtualDiskManager) CopyVirtualDisk(
	ctx context.Context,
	sourceName string, sourceDatacenter *Datacenter,
	destName string, destDatacenter *Datacenter,
	destSpec *types.VirtualDiskSpec, force bool) (*Task, error)

CopyVirtualDisk copies a virtual disk, performing conversions as specified in the spec.

func (VirtualDiskManager) CreateChildDisk added in v0.17.0

func (m VirtualDiskManager) CreateChildDisk(ctx context.Context, parent string, pdc *Datacenter, name string, dc *Datacenter, linked bool) (*Task, error)

func (VirtualDiskManager) CreateVirtualDisk

func (m VirtualDiskManager) CreateVirtualDisk(
	ctx context.Context,
	name string, datacenter *Datacenter,
	spec types.BaseVirtualDiskSpec) (*Task, error)

CreateVirtualDisk creates a new virtual disk.

func (VirtualDiskManager) DeleteVirtualDisk

func (m VirtualDiskManager) DeleteVirtualDisk(ctx context.Context, name string, dc *Datacenter) (*Task, error)

DeleteVirtualDisk deletes a virtual disk.

func (VirtualDiskManager) ExtendVirtualDisk added in v0.39.0

func (m VirtualDiskManager) ExtendVirtualDisk(
	ctx context.Context,
	name string, datacenter *Datacenter,
	capacityKb int64,
	eagerZero *bool) (*Task, error)

ExtendVirtualDisk extends an existing virtual disk.

func (VirtualDiskManager) InflateVirtualDisk added in v0.17.0

func (m VirtualDiskManager) InflateVirtualDisk(ctx context.Context, name string, dc *Datacenter) (*Task, error)

InflateVirtualDisk inflates a virtual disk.

func (VirtualDiskManager) MoveVirtualDisk

func (m VirtualDiskManager) MoveVirtualDisk(
	ctx context.Context,
	sourceName string, sourceDatacenter *Datacenter,
	destName string, destDatacenter *Datacenter,
	force bool) (*Task, error)

MoveVirtualDisk moves a virtual disk.

func (VirtualDiskManager) QueryVirtualDiskInfo added in v0.14.0

func (m VirtualDiskManager) QueryVirtualDiskInfo(ctx context.Context, name string, dc *Datacenter, includeParents bool) ([]VirtualDiskInfo, error)

func (VirtualDiskManager) QueryVirtualDiskUuid added in v0.9.0

func (m VirtualDiskManager) QueryVirtualDiskUuid(ctx context.Context, name string, dc *Datacenter) (string, error)

Queries virtual disk uuid

func (VirtualDiskManager) SetVirtualDiskUuid added in v0.18.0

func (m VirtualDiskManager) SetVirtualDiskUuid(ctx context.Context, name string, dc *Datacenter, uuid string) error

func (VirtualDiskManager) ShrinkVirtualDisk added in v0.17.0

func (m VirtualDiskManager) ShrinkVirtualDisk(ctx context.Context, name string, dc *Datacenter, copy *bool) (*Task, error)

ShrinkVirtualDisk shrinks a virtual disk.

type VirtualMachine

type VirtualMachine struct {
	Common
}
Example (ResourcePoolOwner)

Find a VirtualMachine's Cluster

package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		obj, err := find.NewFinder(c).VirtualMachine(ctx, "DC0_C0_RP0_VM0")
		if err != nil {
			return err
		}

		pool, err := obj.ResourcePool(ctx)
		if err != nil {
			return err
		}

		// ResourcePool owner will be a ComputeResource or ClusterComputeResource
		cluster, err := pool.Owner(ctx)
		if err != nil {
			return err
		}

		fmt.Printf("%s", cluster.Reference().Type)

		return nil
	})
}
Output:

ClusterComputeResource

func (VirtualMachine) AcquireTicket added in v0.16.0

func (v VirtualMachine) AcquireTicket(ctx context.Context, kind string) (*types.VirtualMachineTicket, error)

func (VirtualMachine) AddDevice

func (v VirtualMachine) AddDevice(ctx context.Context, device ...types.BaseVirtualDevice) error

AddDevice adds the given devices to the VirtualMachine

func (VirtualMachine) Answer

func (v VirtualMachine) Answer(ctx context.Context, id, answer string) error

Answer answers a pending question.

func (VirtualMachine) AttachDisk added in v0.24.0

func (v VirtualMachine) AttachDisk(ctx context.Context, id string, datastore *Datastore, controllerKey int32, unitNumber int32) error

AttachDisk attaches the given disk to the VirtualMachine

func (VirtualMachine) BootOptions

BootOptions returns the VirtualMachine's config.bootOptions property.

func (VirtualMachine) Clone

func (v VirtualMachine) Clone(ctx context.Context, folder *Folder, name string, config types.VirtualMachineCloneSpec) (*Task, error)
Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/object"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/types"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		finder := find.NewFinder(c)
		dc, err := finder.Datacenter(ctx, "DC0")
		if err != nil {
			return err
		}

		finder.SetDatacenter(dc)

		vm, err := finder.VirtualMachine(ctx, "DC0_H0_VM0")
		if err != nil {
			return err
		}

		folders, err := dc.Folders(ctx)
		if err != nil {
			return err
		}

		spec := types.VirtualMachineCloneSpec{
			PowerOn: false,
		}

		task, err := vm.Clone(ctx, folders.VmFolder, "example-clone", spec)
		if err != nil {
			return err
		}

		info, err := task.WaitForResult(ctx)
		if err != nil {
			return err
		}

		clone := object.NewVirtualMachine(c, info.Result.(types.ManagedObjectReference))
		name, err := clone.ObjectName(ctx)
		if err != nil {
			return err
		}

		fmt.Println(name)

		return nil
	})
}
Output:

example-clone

func (VirtualMachine) CreateSnapshot added in v0.3.0

func (v VirtualMachine) CreateSnapshot(ctx context.Context, name string, description string, memory bool, quiesce bool) (*Task, error)

CreateSnapshot creates a new snapshot of a virtual machine.

Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/mo"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		vm, err := find.NewFinder(c).VirtualMachine(ctx, "DC0_H0_VM0")
		if err != nil {
			return err
		}

		task, err := vm.CreateSnapshot(ctx, "backup", "Backup", false, false)
		if err != nil {
			return err
		}
		if err = task.Wait(ctx); err != nil {
			return err
		}

		id, err := vm.FindSnapshot(ctx, "backup")
		if err != nil {
			return err
		}

		var snapshot mo.VirtualMachineSnapshot
		err = vm.Properties(ctx, *id, []string{"config.hardware.device"}, &snapshot)
		if err != nil {
			return err
		}

		fmt.Printf("%d devices", len(snapshot.Config.Hardware.Device))

		return nil
	})
}
Output:

13 devices

func (VirtualMachine) Customize added in v0.3.0

func (v VirtualMachine) Customize(ctx context.Context, spec types.CustomizationSpec) (*Task, error)
Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/types"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		vm, err := find.NewFinder(c).VirtualMachine(ctx, "DC0_H0_VM0")
		if err != nil {
			return err
		}
		task, err := vm.PowerOff(ctx)
		if err != nil {
			return err
		}
		if err = task.Wait(ctx); err != nil {
			return err
		}

		spec := types.CustomizationSpec{
			NicSettingMap: []types.CustomizationAdapterMapping{
				types.CustomizationAdapterMapping{
					Adapter: types.CustomizationIPSettings{
						Ip: &types.CustomizationFixedIp{
							IpAddress: "192.168.1.100",
						},
						SubnetMask:    "255.255.255.0",
						Gateway:       []string{"192.168.1.1"},
						DnsServerList: []string{"192.168.1.1"},
						DnsDomain:     "ad.domain",
					},
				},
			},
			Identity: &types.CustomizationLinuxPrep{
				HostName: &types.CustomizationFixedName{
					Name: "hostname",
				},
				Domain:     "ad.domain",
				TimeZone:   "Etc/UTC",
				HwClockUTC: types.NewBool(true),
			},
			GlobalIPSettings: types.CustomizationGlobalIPSettings{
				DnsSuffixList: []string{"ad.domain"},
				DnsServerList: []string{"192.168.1.1"},
			},
		}

		task, err = vm.Customize(ctx, spec)
		if err != nil {
			return err
		}
		if err = task.Wait(ctx); err != nil {
			return err
		}

		task, err = vm.PowerOn(ctx)
		if err != nil {
			return err
		}
		if err = task.Wait(ctx); err != nil {
			return err
		}

		ip, err := vm.WaitForIP(ctx)
		if err != nil {
			return err
		}

		fmt.Println(ip)

		return nil
	})
}
Output:

192.168.1.100

func (VirtualMachine) Destroy

func (v VirtualMachine) Destroy(ctx context.Context) (*Task, error)

func (VirtualMachine) DetachDisk added in v0.24.0

func (v VirtualMachine) DetachDisk(ctx context.Context, id string) error

DetachDisk detaches the given disk from the VirtualMachine

func (VirtualMachine) Device

Device returns the VirtualMachine's config.hardware.device property.

func (VirtualMachine) EditDevice

func (v VirtualMachine) EditDevice(ctx context.Context, device ...types.BaseVirtualDevice) error

EditDevice edits the given (existing) devices on the VirtualMachine

func (VirtualMachine) EnvironmentBrowser added in v0.32.0

func (v VirtualMachine) EnvironmentBrowser(ctx context.Context) (*EnvironmentBrowser, error)

func (VirtualMachine) Export added in v0.16.0

func (v VirtualMachine) Export(ctx context.Context) (*nfc.Lease, error)

func (*VirtualMachine) ExportSnapshot added in v0.28.0

func (v *VirtualMachine) ExportSnapshot(ctx context.Context, snapshot *types.ManagedObjectReference) (*nfc.Lease, error)

ExportSnapshot exports all VMDK-files up to (but not including) a specified snapshot. This is useful when exporting a running VM.

func (VirtualMachine) FindSnapshot added in v0.15.0

func (v VirtualMachine) FindSnapshot(ctx context.Context, name string) (*types.ManagedObjectReference, error)

FindSnapshot supports snapshot lookup by name, where name can be: 1) snapshot ManagedObjectReference.Value (unique) 2) snapshot name (may not be unique) 3) snapshot tree path (may not be unique)

func (VirtualMachine) HostSystem

func (v VirtualMachine) HostSystem(ctx context.Context) (*HostSystem, error)
Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		vm, err := find.NewFinder(c).VirtualMachine(ctx, "DC0_H0_VM0")
		if err != nil {
			return err
		}

		host, err := vm.HostSystem(ctx)
		if err != nil {
			return err
		}

		name, err := host.ObjectName(ctx)
		if err != nil {
			return err
		}

		fmt.Println(name)

		return nil
	})
}
Output:

DC0_H0

func (VirtualMachine) InstantClone added in v0.24.0

func (VirtualMachine) IsTemplate added in v0.22.0

func (v VirtualMachine) IsTemplate(ctx context.Context) (bool, error)

func (VirtualMachine) IsToolsRunning

func (v VirtualMachine) IsToolsRunning(ctx context.Context) (bool, error)

IsToolsRunning returns true if VMware Tools is currently running in the guest OS, and false otherwise.

func (VirtualMachine) MarkAsTemplate

func (v VirtualMachine) MarkAsTemplate(ctx context.Context) error

func (VirtualMachine) MarkAsVirtualMachine

func (v VirtualMachine) MarkAsVirtualMachine(ctx context.Context, pool ResourcePool, host *HostSystem) error

func (VirtualMachine) Migrate added in v0.9.0

func (VirtualMachine) MountToolsInstaller added in v0.13.0

func (v VirtualMachine) MountToolsInstaller(ctx context.Context) error

func (VirtualMachine) PowerOff

func (v VirtualMachine) PowerOff(ctx context.Context) (*Task, error)

func (VirtualMachine) PowerOn

func (v VirtualMachine) PowerOn(ctx context.Context) (*Task, error)

func (VirtualMachine) PowerState added in v0.3.0

func (VirtualMachine) PutUsbScanCodes added in v0.20.0

func (v VirtualMachine) PutUsbScanCodes(ctx context.Context, spec types.UsbScanCodeSpec) (int32, error)

func (VirtualMachine) QueryChangedDiskAreas added in v0.22.0

func (v VirtualMachine) QueryChangedDiskAreas(ctx context.Context, baseSnapshot, curSnapshot *types.ManagedObjectReference, disk *types.VirtualDisk, offset int64) (types.DiskChangeInfo, error)

func (VirtualMachine) RebootGuest

func (v VirtualMachine) RebootGuest(ctx context.Context) error

func (VirtualMachine) Reconfigure

func (v VirtualMachine) Reconfigure(ctx context.Context, config types.VirtualMachineConfigSpec) (*Task, error)
Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/mo"
	"github.com/vmware/govmomi/vim25/types"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		vm, err := find.NewFinder(c).VirtualMachine(ctx, "DC0_H0_VM0")
		if err != nil {
			return err
		}

		spec := types.VirtualMachineConfigSpec{Annotation: "example reconfig"}

		task, err := vm.Reconfigure(ctx, spec)
		if err != nil {
			return err
		}

		err = task.Wait(ctx)
		if err != nil {
			return err
		}

		var obj mo.VirtualMachine
		err = vm.Properties(ctx, vm.Reference(), []string{"config.annotation"}, &obj)
		if err != nil {
			return err
		}

		fmt.Println(obj.Config.Annotation)

		return nil
	})
}
Output:

example reconfig

func (VirtualMachine) RefreshStorageInfo added in v0.20.0

func (v VirtualMachine) RefreshStorageInfo(ctx context.Context) error

func (VirtualMachine) Relocate

func (VirtualMachine) RemoveAllSnapshot added in v0.6.2

func (v VirtualMachine) RemoveAllSnapshot(ctx context.Context, consolidate *bool) (*Task, error)

RemoveAllSnapshot removes all snapshots of a virtual machine

func (VirtualMachine) RemoveDevice

func (v VirtualMachine) RemoveDevice(ctx context.Context, keepFiles bool, device ...types.BaseVirtualDevice) error

RemoveDevice removes the given devices on the VirtualMachine

func (VirtualMachine) RemoveSnapshot added in v0.9.0

func (v VirtualMachine) RemoveSnapshot(ctx context.Context, name string, removeChildren bool, consolidate *bool) (*Task, error)

RemoveSnapshot removes a named snapshot

func (VirtualMachine) Reset

func (v VirtualMachine) Reset(ctx context.Context) (*Task, error)

func (VirtualMachine) ResourcePool

func (v VirtualMachine) ResourcePool(ctx context.Context) (*ResourcePool, error)
Example
package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		finder := find.NewFinder(c)
		vm, err := finder.VirtualMachine(ctx, "DC0_C0_RP0_VM0")
		if err != nil {
			return err
		}

		pool, err := vm.ResourcePool(ctx)
		if err != nil {
			return err
		}

		name, err := pool.ObjectName(ctx)
		if err != nil {
			return err
		}

		fmt.Println(name)

		// The InventoryPath field not populated unless Finder.ResourcePool() or
		// Finder.ResourcePoolList() was used. But we can populate it explicity.
		pool.InventoryPath, err = find.InventoryPath(ctx, c, pool.Reference())
		if err != nil {
			return err
		}

		fmt.Println(pool.InventoryPath)

		return nil
	})
}
Output:

Resources
/DC0/host/DC0_C0/Resources

func (VirtualMachine) RevertToCurrentSnapshot added in v0.9.0

func (v VirtualMachine) RevertToCurrentSnapshot(ctx context.Context, suppressPowerOn bool) (*Task, error)

RevertToCurrentSnapshot reverts to the current snapshot

func (VirtualMachine) RevertToSnapshot added in v0.6.0

func (v VirtualMachine) RevertToSnapshot(ctx context.Context, name string, suppressPowerOn bool) (*Task, error)

RevertToSnapshot reverts to a named snapshot

func (VirtualMachine) SetBootOptions

func (v VirtualMachine) SetBootOptions(ctx context.Context, options *types.VirtualMachineBootOptions) error

SetBootOptions reconfigures the VirtualMachine with the given options.

func (VirtualMachine) ShutdownGuest

func (v VirtualMachine) ShutdownGuest(ctx context.Context) error

func (VirtualMachine) StandbyGuest added in v0.31.0

func (v VirtualMachine) StandbyGuest(ctx context.Context) error

func (VirtualMachine) Suspend

func (v VirtualMachine) Suspend(ctx context.Context) (*Task, error)

func (VirtualMachine) UUID added in v0.19.0

func (v VirtualMachine) UUID(ctx context.Context) string

UUID is a helper to get the UUID of the VirtualMachine managed object. This method returns an empty string if an error occurs when retrieving UUID from the VirtualMachine object.

func (VirtualMachine) UnmountToolsInstaller added in v0.13.0

func (v VirtualMachine) UnmountToolsInstaller(ctx context.Context) error

func (VirtualMachine) Unregister added in v0.9.0

func (v VirtualMachine) Unregister(ctx context.Context) error

func (VirtualMachine) UpgradeTools added in v0.13.0

func (v VirtualMachine) UpgradeTools(ctx context.Context, options string) (*Task, error)

func (VirtualMachine) UpgradeVM added in v0.17.0

func (v VirtualMachine) UpgradeVM(ctx context.Context, version string) (*Task, error)

func (VirtualMachine) WaitForIP

func (v VirtualMachine) WaitForIP(ctx context.Context, v4 ...bool) (string, error)

WaitForIP waits for the VM guest.ipAddress property to report an IP address. Waits for an IPv4 address if the v4 param is true.

func (VirtualMachine) WaitForNetIP added in v0.6.0

func (v VirtualMachine) WaitForNetIP(ctx context.Context, v4 bool, device ...string) (map[string][]string, error)

WaitForNetIP waits for the VM guest.net property to report an IP address for all VM NICs. Only consider IPv4 addresses if the v4 param is true. By default, wait for all NICs to get an IP address, unless 1 or more device is given. A device can be specified by the MAC address or the device name, e.g. "ethernet-0". Returns a map with MAC address as the key and IP address list as the value.

func (VirtualMachine) WaitForPowerState

func (v VirtualMachine) WaitForPowerState(ctx context.Context, state types.VirtualMachinePowerState) error

Wait for the VirtualMachine to change to the desired power state.

type VmCompatibilityChecker added in v0.39.0

type VmCompatibilityChecker struct {
	Common
}

VmCompatibilityChecker models the CompatibilityChecker, a singleton managed object that can answer questions about compatibility of a virtual machine with a host.

For more information, see: https://dp-downloads.broadcom.com/api-content/apis/API_VWSA_001/8.0U3/html/ReferenceGuides/vim.vm.check.CompatibilityChecker.html

func NewVmCompatibilityChecker added in v0.39.0

func NewVmCompatibilityChecker(c *vim25.Client) *VmCompatibilityChecker

func (VmCompatibilityChecker) CheckCompatibility added in v0.39.0

func (VmCompatibilityChecker) CheckVmConfig added in v0.39.0

type VmProvisioningChecker added in v0.39.0

type VmProvisioningChecker struct {
	Common
}

VmProvisioningChecker models the ProvisioningChecker, a singleton managed object that can answer questions about the feasibility of certain provisioning operations.

For more information, see: https://dp-downloads.broadcom.com/api-content/apis/API_VWSA_001/8.0U3/html/ReferenceGuides/vim.vm.check.ProvisioningChecker.html

func NewVmProvisioningChecker added in v0.39.0

func NewVmProvisioningChecker(c *vim25.Client) *VmProvisioningChecker

func (VmProvisioningChecker) CheckRelocate added in v0.39.0

type VmwareDistributedVirtualSwitch

type VmwareDistributedVirtualSwitch struct {
	DistributedVirtualSwitch
}

func (VmwareDistributedVirtualSwitch) GetInventoryPath added in v0.22.0

func (s VmwareDistributedVirtualSwitch) GetInventoryPath() string

type VsanObjExtAttrs added in v0.13.0

type VsanObjExtAttrs struct {
	Type  string `json:"Object type"`
	Class string `json:"Object class"`
	Size  string `json:"Object size"`
	Path  string `json:"Object path"`
	Name  string `json:"User friendly name"`
}

func (*VsanObjExtAttrs) DatastorePath added in v0.13.0

func (a *VsanObjExtAttrs) DatastorePath(dir string) string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL