import "github.com/vmware/govmomi/object"
authorization_manager.go authorization_manager_internal.go cluster_compute_resource.go common.go compute_resource.go custom_fields_manager.go customization_spec_manager.go datacenter.go datastore.go datastore_file.go datastore_file_manager.go datastore_path.go diagnostic_log.go diagnostic_manager.go distributed_virtual_portgroup.go distributed_virtual_switch.go extension_manager.go file_manager.go folder.go history_collector.go host_account_manager.go host_certificate_info.go host_certificate_manager.go host_config_manager.go host_datastore_browser.go host_datastore_system.go host_date_time_system.go host_firewall_system.go host_network_system.go host_service_system.go host_storage_system.go host_system.go host_virtual_nic_manager.go host_vsan_internal_system.go host_vsan_system.go namespace_manager.go network.go network_reference.go opaque_network.go option_manager.go resource_pool.go search_index.go storage_pod.go storage_resource_manager.go task.go types.go virtual_app.go virtual_device_list.go virtual_disk_manager.go virtual_disk_manager_internal.go virtual_machine.go vmware_distributed_virtual_switch.go
const ( DeviceTypeNone = "-" DeviceTypeCdrom = "cdrom" DeviceTypeDisk = "disk" DeviceTypeEthernet = "ethernet" DeviceTypeFloppy = "floppy" )
Type values for use in BootOrder
const ( PropRuntimePowerState = "summary.runtime.powerState" PropConfigTemplate = "summary.config.template" )
func NewAuthorizationManager(c *vim25.Client) *AuthorizationManager
func (m AuthorizationManager) AddRole(ctx context.Context, name string, ids []string) (int32, error)
func (m AuthorizationManager) DisableMethods(ctx context.Context, entity []types.ManagedObjectReference, method []DisabledMethodRequest, source string) error
func (m AuthorizationManager) EnableMethods(ctx context.Context, entity []types.ManagedObjectReference, method []string, source string) error
func (m AuthorizationManager) FetchUserPrivilegeOnEntities(ctx context.Context, entities []types.ManagedObjectReference, userName string) ([]types.UserPrivilegeResult, error)
func (m AuthorizationManager) HasPrivilegeOnEntity(ctx context.Context, entity types.ManagedObjectReference, sessionID string, privID []string) ([]bool, error)
func (m AuthorizationManager) HasUserPrivilegeOnEntities(ctx context.Context, entities []types.ManagedObjectReference, userName string, privID []string) ([]types.EntityPrivilege, error)
func (m AuthorizationManager) RemoveEntityPermission(ctx context.Context, entity types.ManagedObjectReference, user string, isGroup bool) error
func (m AuthorizationManager) RetrieveAllPermissions(ctx context.Context) ([]types.Permission, error)
func (m AuthorizationManager) RetrieveEntityPermissions(ctx context.Context, entity types.ManagedObjectReference, inherited bool) ([]types.Permission, error)
func (m AuthorizationManager) RetrieveRolePermissions(ctx context.Context, id int32) ([]types.Permission, error)
func (m AuthorizationManager) RoleList(ctx context.Context) (AuthorizationRoleList, error)
func (m AuthorizationManager) SetEntityPermissions(ctx context.Context, entity types.ManagedObjectReference, permission []types.Permission) error
func (m AuthorizationManager) UpdateRole(ctx context.Context, id int32, name string, ids []string) error
type AuthorizationRoleList []types.AuthorizationRole
func (l AuthorizationRoleList) ById(id int32) *types.AuthorizationRole
func (l AuthorizationRoleList) ByName(name string) *types.AuthorizationRole
type ClusterComputeResource struct { ComputeResource }
func NewClusterComputeResource(c *vim25.Client, ref types.ManagedObjectReference) *ClusterComputeResource
func (c ClusterComputeResource) AddHost(ctx context.Context, spec types.HostConnectSpec, asConnected bool, license *string, resourcePool *types.ManagedObjectReference) (*Task, error)
func (c ClusterComputeResource) Configuration(ctx context.Context) (*types.ClusterConfigInfoEx, error)
func (c ClusterComputeResource) MoveInto(ctx context.Context, hosts ...*HostSystem) (*Task, error)
func (c ClusterComputeResource) PlaceVm(ctx context.Context, spec types.PlacementSpec) (*types.PlacementResult, error)
Common contains the fields and functions common to all objects.
Code:
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
Name returns the base name of the InventoryPath field
ObjectName fetches the mo.ManagedEntity.Name field via the property collector.
func (c Common) Properties(ctx context.Context, r types.ManagedObjectReference, ps []string, dst interface{}) error
Properties is a wrapper for property.DefaultCollector().RetrieveOne()
func (c Common) Reference() types.ManagedObjectReference
Code:
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 NewComputeResource(c *vim25.Client, ref types.ManagedObjectReference) *ComputeResource
func (c ComputeResource) Hosts(ctx context.Context) ([]*HostSystem, error)
func (c ComputeResource) Reconfigure(ctx context.Context, spec types.BaseComputeResourceConfigSpec, modify bool) (*Task, error)
func (c ComputeResource) ResourcePool(ctx context.Context) (*ResourcePool, error)
type CustomFieldDefList []types.CustomFieldDef
func (l CustomFieldDefList) ByKey(key int32) *types.CustomFieldDef
func GetCustomFieldsManager(c *vim25.Client) (*CustomFieldsManager, error)
GetCustomFieldsManager wraps NewCustomFieldsManager, returning ErrNotSupported when the client is not connected to a vCenter instance.
func NewCustomFieldsManager(c *vim25.Client) *CustomFieldsManager
func (m CustomFieldsManager) Add(ctx context.Context, name string, moType string, fieldDefPolicy *types.PrivilegePolicyDef, fieldPolicy *types.PrivilegePolicyDef) (*types.CustomFieldDef, error)
func (m CustomFieldsManager) Field(ctx context.Context) (CustomFieldDefList, error)
func (m CustomFieldsManager) Set(ctx context.Context, entity types.ManagedObjectReference, key int32, value string) error
Code:
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.Filter{"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
func NewCustomizationSpecManager(c *vim25.Client) *CustomizationSpecManager
func (cs CustomizationSpecManager) CreateCustomizationSpec(ctx context.Context, item types.CustomizationSpecItem) error
func (cs CustomizationSpecManager) CustomizationSpecItemToXml(ctx context.Context, item types.CustomizationSpecItem) (string, error)
func (cs CustomizationSpecManager) DoesCustomizationSpecExist(ctx context.Context, name string) (bool, error)
func (cs CustomizationSpecManager) DuplicateCustomizationSpec(ctx context.Context, name string, newName string) error
func (cs CustomizationSpecManager) GetCustomizationSpec(ctx context.Context, name string) (*types.CustomizationSpecItem, error)
func (cs CustomizationSpecManager) Info(ctx context.Context) ([]types.CustomizationSpecInfo, error)
Code:
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 (cs CustomizationSpecManager) OverwriteCustomizationSpec(ctx context.Context, item types.CustomizationSpecItem) error
func (cs CustomizationSpecManager) RenameCustomizationSpec(ctx context.Context, name string, newName string) error
func (cs CustomizationSpecManager) XmlToCustomizationSpecItem(ctx context.Context, xml string) (*types.CustomizationSpecItem, error)
func NewDatacenter(c *vim25.Client, ref types.ManagedObjectReference) *Datacenter
func (d *Datacenter) Folders(ctx context.Context) (*DatacenterFolders, error)
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 struct { VmFolder *Folder HostFolder *Folder DatastoreFolder *Folder NetworkFolder *Folder }
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.
AttachedHosts returns hosts that have this Datastore attached, accessible and writable.
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 (d Datastore) DownloadFile(ctx context.Context, path string, file string, param *soap.Download) error
DownloadFile via soap.Download with an http service ticket
HostContext returns a Context where the given host will be used for datastore HTTP access via the ServiceTicket method.
func (d Datastore) NewFileManager(dc *Datacenter, force bool) *DatastoreFileManager
NewFileManager creates a new instance of DatastoreFileManager
NewURL constructs a url.URL with the given file path for datastore access over HTTP.
Open opens the named file relative to the Datastore.
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.
Type returns the type of file system volume.
URL is deprecated, use NewURL instead.
Upload via soap.Upload with an http service ticket
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 struct {
// contains filtered or unexported fields
}
DatastoreFile implements io.Reader, io.Seeker and io.Closer interfaces for datastore file access.
func (f *DatastoreFile) Close() error
Close closes the DatastoreFile.
func (f *DatastoreFile) Follow(interval time.Duration) io.ReadCloser
Follow returns an io.ReadCloser to stream the file contents as data is appended.
func (f *DatastoreFile) Read(b []byte) (int, error)
Read reads up to len(b) bytes from the DatastoreFile.
Seek sets the offset for the next Read on the DatastoreFile.
func (f *DatastoreFile) Stat() (os.FileInfo, error)
Stat returns the os.FileInfo interface describing file.
func (f *DatastoreFile) Tail(n int) error
Tail seeks to the position of the last N lines of the file.
TailFunc will seek backwards in the datastore file until it hits a line that does not satisfy the supplied `include` function.
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
Copy dispatches to the appropriate FileManager or VirtualDiskManager Copy method based on file name extension
CopyFile calls FileManager.CopyDatastoreFile
Delete dispatches to the appropriate Delete method based on file name extension
DeleteFile calls FileManager.DeleteDatastoreFile
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.
Move dispatches to the appropriate FileManager or VirtualDiskManager Move method based on file name extension
MoveFile calls FileManager.MoveDatastoreFile
func (m *DatastoreFileManager) Path(name string) *DatastorePath
Path converts path name to a DatastorePath
func (m *DatastoreFileManager) WithProgress(ctx context.Context, s progress.Sinker) context.Context
func NewDatastoreNamespaceManager(c *vim25.Client) *DatastoreNamespaceManager
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 (nm DatastoreNamespaceManager) DeleteDirectory(ctx context.Context, dc *Datacenter, datastorePath string) error
DeleteDirectory deletes the given top-level directory from a vsan datastore.
type DatastoreNoSuchDirectoryError struct {
// contains filtered or unexported fields
}
DatastoreNoSuchDirectoryError is returned when a directory could not be found.
func (e DatastoreNoSuchDirectoryError) Error() string
type DatastoreNoSuchFileError struct {
// contains filtered or unexported fields
}
DatastoreNoSuchFileError is returned when a file could not be found.
func (e DatastoreNoSuchFileError) Error() string
DatastorePath contains the components of a datastore path.
func (p *DatastorePath) FromString(s string) bool
FromString parses a datastore path. Returns true if the path could be parsed, false otherwise.
func (p *DatastorePath) IsVMDK() bool
IsVMDK returns true if Path has a ".vmdk" extension
func (p *DatastorePath) String() string
String formats a datastore path.
type DiagnosticLog struct { Key string Host *HostSystem Start int32 // contains filtered or unexported fields }
DiagnosticLog wraps DiagnosticManager.BrowseLog
Copy log starting from l.Start to the given io.Writer Returns on error or when end of log is reached.
Seek to log position starting at the last nlines of the log
func NewDiagnosticManager(c *vim25.Client) *DiagnosticManager
func (m DiagnosticManager) BrowseLog(ctx context.Context, host *HostSystem, key string, start, lines int32) (*types.DiagnosticManagerLogHeader, error)
func (m DiagnosticManager) GenerateLogBundles(ctx context.Context, includeDefault bool, host []*HostSystem) (*Task, error)
func (m DiagnosticManager) Log(ctx context.Context, host *HostSystem, key string) *DiagnosticLog
func (m DiagnosticManager) QueryDescriptions(ctx context.Context, host *HostSystem) ([]types.DiagnosticManagerLogDescriptor, error)
func NewDistributedVirtualPortgroup(c *vim25.Client, ref types.ManagedObjectReference) *DistributedVirtualPortgroup
func (p DistributedVirtualPortgroup) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error)
EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this DistributedVirtualPortgroup
func (p DistributedVirtualPortgroup) GetInventoryPath() string
func (p DistributedVirtualPortgroup) Reconfigure(ctx context.Context, spec types.DVPortgroupConfigSpec) (*Task, error)
func NewDistributedVirtualSwitch(c *vim25.Client, ref types.ManagedObjectReference) *DistributedVirtualSwitch
func (s DistributedVirtualSwitch) AddPortgroup(ctx context.Context, spec []types.DVPortgroupConfigSpec) (*Task, error)
func (s DistributedVirtualSwitch) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error)
func (s DistributedVirtualSwitch) FetchDVPorts(ctx context.Context, criteria *types.DistributedVirtualSwitchPortCriteria) ([]types.DistributedVirtualPort, error)
func (s DistributedVirtualSwitch) GetInventoryPath() string
func (s DistributedVirtualSwitch) Reconfigure(ctx context.Context, spec types.BaseDVSConfigSpec) (*Task, error)
func (s DistributedVirtualSwitch) ReconfigureDVPort(ctx context.Context, spec []types.DVPortConfigSpec) (*Task, error)
func GetExtensionManager(c *vim25.Client) (*ExtensionManager, error)
GetExtensionManager wraps NewExtensionManager, returning ErrNotSupported when the client is not connected to a vCenter instance.
func NewExtensionManager(c *vim25.Client) *ExtensionManager
func (m ExtensionManager) SetCertificate(ctx context.Context, key string, certificatePem string) error
func NewFileManager(c *vim25.Client) *FileManager
func (f FileManager) CopyDatastoreFile(ctx context.Context, sourceName string, sourceDatacenter *Datacenter, destinationName string, destinationDatacenter *Datacenter, force bool) (*Task, error)
func (f FileManager) DeleteDatastoreFile(ctx context.Context, name string, dc *Datacenter) (*Task, error)
DeleteDatastoreFile deletes the specified file or folder from the datastore.
func (f FileManager) MakeDirectory(ctx context.Context, name string, dc *Datacenter, createParentDirectories bool) error
MakeDirectory creates a folder using the specified name.
func (f FileManager) MoveDatastoreFile(ctx context.Context, sourceName string, sourceDatacenter *Datacenter, destinationName string, destinationDatacenter *Datacenter, force bool) (*Task, error)
func (f Folder) AddStandaloneHost(ctx context.Context, spec types.HostConnectSpec, addConnected bool, license *string, compResSpec *types.BaseComputeResourceConfigSpec) (*Task, error)
func (f Folder) CreateCluster(ctx context.Context, cluster string, spec types.ClusterConfigSpecEx) (*ClusterComputeResource, error)
func (f Folder) CreateVM(ctx context.Context, config types.VirtualMachineConfigSpec, pool *ResourcePool, host *HostSystem) (*Task, error)
Code:
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 (f Folder) RegisterVM(ctx context.Context, path string, name string, asTemplate bool, pool *ResourcePool, host *HostSystem) (*Task, error)
func NewHistoryCollector(c *vim25.Client, ref types.ManagedObjectReference) *HistoryCollector
func (h HistoryCollector) Destroy(ctx context.Context) error
func (h HistoryCollector) Reset(ctx context.Context) error
func (h HistoryCollector) Rewind(ctx context.Context) error
func NewHostAccountManager(c *vim25.Client, ref types.ManagedObjectReference) *HostAccountManager
func (m HostAccountManager) Create(ctx context.Context, user *types.HostAccountSpec) error
func (m HostAccountManager) Update(ctx context.Context, user *types.HostAccountSpec) error
type HostCertificateInfo struct { types.HostCertificateManagerCertificateInfo ThumbprintSHA1 string ThumbprintSHA256 string Err error Certificate *x509.Certificate `json:"-"` // contains filtered or unexported fields }
HostCertificateInfo provides helpers for types.HostCertificateManagerCertificateInfo
func (info *HostCertificateInfo) FromCertificate(cert *x509.Certificate) *HostCertificateInfo
FromCertificate converts x509.Certificate to HostCertificateInfo
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 (info *HostCertificateInfo) IssuerName() *pkix.Name
IssuerName parses Issuer into a pkix.Name
func (info *HostCertificateInfo) SubjectName() *pkix.Name
SubjectName parses Subject into a pkix.Name
func (info *HostCertificateInfo) Write(w io.Writer) error
Write outputs info similar to the Chrome Certificate Viewer.
type HostCertificateManager struct { Common Host *HostSystem }
HostCertificateManager provides helper methods around the HostSystem.ConfigManager.CertificateManager
func NewHostCertificateManager(c *vim25.Client, ref types.ManagedObjectReference, host types.ManagedObjectReference) *HostCertificateManager
NewHostCertificateManager creates a new HostCertificateManager helper
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 (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 (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.
InstallServerCertificate imports the given SSL certificate to the host system.
func (m HostCertificateManager) ListCACertificateRevocationLists(ctx context.Context) ([]string, error)
ListCACertificateRevocationLists returns the SSL CRLs of Certificate Authorities that are trusted by the host system.
ListCACertificates returns the SSL certificates of Certificate Authorities that are trusted by the host system.
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.
func NewHostConfigManager(c *vim25.Client, ref types.ManagedObjectReference) *HostConfigManager
func (m HostConfigManager) AccountManager(ctx context.Context) (*HostAccountManager, error)
func (m HostConfigManager) CertificateManager(ctx context.Context) (*HostCertificateManager, error)
func (m HostConfigManager) DatastoreSystem(ctx context.Context) (*HostDatastoreSystem, error)
func (m HostConfigManager) DateTimeSystem(ctx context.Context) (*HostDateTimeSystem, error)
func (m HostConfigManager) FirewallSystem(ctx context.Context) (*HostFirewallSystem, error)
func (m HostConfigManager) NetworkSystem(ctx context.Context) (*HostNetworkSystem, error)
func (m HostConfigManager) OptionManager(ctx context.Context) (*OptionManager, error)
func (m HostConfigManager) ServiceSystem(ctx context.Context) (*HostServiceSystem, error)
func (m HostConfigManager) StorageSystem(ctx context.Context) (*HostStorageSystem, error)
func (m HostConfigManager) VirtualNicManager(ctx context.Context) (*HostVirtualNicManager, error)
func (m HostConfigManager) VsanInternalSystem(ctx context.Context) (*HostVsanInternalSystem, error)
func (m HostConfigManager) VsanSystem(ctx context.Context) (*HostVsanSystem, error)
func NewHostDatastoreBrowser(c *vim25.Client, ref types.ManagedObjectReference) *HostDatastoreBrowser
func (b HostDatastoreBrowser) SearchDatastore(ctx context.Context, datastorePath string, searchSpec *types.HostDatastoreBrowserSearchSpec) (*Task, error)
func (b HostDatastoreBrowser) SearchDatastoreSubFolders(ctx context.Context, datastorePath string, searchSpec *types.HostDatastoreBrowserSearchSpec) (*Task, error)
func NewHostDatastoreSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostDatastoreSystem
func (s HostDatastoreSystem) CreateLocalDatastore(ctx context.Context, name string, path string) (*Datastore, error)
func (s HostDatastoreSystem) CreateNasDatastore(ctx context.Context, spec types.HostNasVolumeSpec) (*Datastore, error)
func (s HostDatastoreSystem) CreateVmfsDatastore(ctx context.Context, spec types.VmfsDatastoreCreateSpec) (*Datastore, error)
func (s HostDatastoreSystem) QueryAvailableDisksForVmfs(ctx context.Context) ([]types.HostScsiDisk, error)
func (s HostDatastoreSystem) QueryVmfsDatastoreCreateOptions(ctx context.Context, devicePath string) ([]types.VmfsDatastoreOption, error)
func (s HostDatastoreSystem) ResignatureUnresolvedVmfsVolumes(ctx context.Context, devicePaths []string) (*Task, error)
func NewHostDateTimeSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostDateTimeSystem
func (s HostDateTimeSystem) UpdateConfig(ctx context.Context, config types.HostDateTimeConfig) error
type HostFirewallRulesetList []types.HostFirewallRuleset
HostFirewallRulesetList provides helpers for a slice of types.HostFirewallRuleset
func (l HostFirewallRulesetList) ByRule(rule types.HostFirewallRule) HostFirewallRulesetList
ByRule returns a HostFirewallRulesetList where Direction, PortType and Protocol are equal and Port is within range
func (l HostFirewallRulesetList) Disabled() HostFirewallRulesetList
Disabled returns a HostFirewallRulesetList with disabled rules
func (l HostFirewallRulesetList) Enabled() HostFirewallRulesetList
Enabled returns a HostFirewallRulesetList with enabled rules
func (l HostFirewallRulesetList) EnabledByRule(rule types.HostFirewallRule, enabled bool) (HostFirewallRulesetList, error)
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 (l HostFirewallRulesetList) Keys() []string
Keys returns the HostFirewallRuleset.Key for each ruleset in the list
func NewHostFirewallSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostFirewallSystem
func (s HostFirewallSystem) Info(ctx context.Context) (*types.HostFirewallInfo, error)
func (s HostFirewallSystem) Refresh(ctx context.Context) error
func NewHostNetworkSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostNetworkSystem
func (o HostNetworkSystem) AddPortGroup(ctx context.Context, portgrp types.HostPortGroupSpec) error
AddPortGroup wraps methods.AddPortGroup
func (o HostNetworkSystem) AddServiceConsoleVirtualNic(ctx context.Context, portgroup string, nic types.HostVirtualNicSpec) (string, error)
AddServiceConsoleVirtualNic wraps methods.AddServiceConsoleVirtualNic
func (o HostNetworkSystem) AddVirtualNic(ctx context.Context, portgroup string, nic types.HostVirtualNicSpec) (string, error)
AddVirtualNic wraps methods.AddVirtualNic
func (o HostNetworkSystem) AddVirtualSwitch(ctx context.Context, vswitchName string, spec *types.HostVirtualSwitchSpec) error
AddVirtualSwitch wraps methods.AddVirtualSwitch
func (o HostNetworkSystem) QueryNetworkHint(ctx context.Context, device []string) ([]types.PhysicalNicHintInfo, error)
QueryNetworkHint wraps methods.QueryNetworkHint
func (o HostNetworkSystem) RefreshNetworkSystem(ctx context.Context) error
RefreshNetworkSystem wraps methods.RefreshNetworkSystem
RemovePortGroup wraps methods.RemovePortGroup
func (o HostNetworkSystem) RemoveServiceConsoleVirtualNic(ctx context.Context, device string) error
RemoveServiceConsoleVirtualNic wraps methods.RemoveServiceConsoleVirtualNic
RemoveVirtualNic wraps methods.RemoveVirtualNic
RemoveVirtualSwitch wraps methods.RemoveVirtualSwitch
func (o HostNetworkSystem) RestartServiceConsoleVirtualNic(ctx context.Context, device string) error
RestartServiceConsoleVirtualNic wraps methods.RestartServiceConsoleVirtualNic
func (o HostNetworkSystem) UpdateConsoleIpRouteConfig(ctx context.Context, config types.BaseHostIpRouteConfig) error
UpdateConsoleIpRouteConfig wraps methods.UpdateConsoleIpRouteConfig
func (o HostNetworkSystem) UpdateDnsConfig(ctx context.Context, config types.BaseHostDnsConfig) error
UpdateDnsConfig wraps methods.UpdateDnsConfig
func (o HostNetworkSystem) UpdateIpRouteConfig(ctx context.Context, config types.BaseHostIpRouteConfig) error
UpdateIpRouteConfig wraps methods.UpdateIpRouteConfig
func (o HostNetworkSystem) UpdateIpRouteTableConfig(ctx context.Context, config types.HostIpRouteTableConfig) error
UpdateIpRouteTableConfig wraps methods.UpdateIpRouteTableConfig
func (o HostNetworkSystem) UpdateNetworkConfig(ctx context.Context, config types.HostNetworkConfig, changeMode string) (*types.HostNetworkConfigResult, error)
UpdateNetworkConfig wraps methods.UpdateNetworkConfig
func (o HostNetworkSystem) UpdatePhysicalNicLinkSpeed(ctx context.Context, device string, linkSpeed *types.PhysicalNicLinkInfo) error
UpdatePhysicalNicLinkSpeed wraps methods.UpdatePhysicalNicLinkSpeed
func (o HostNetworkSystem) UpdatePortGroup(ctx context.Context, pgName string, portgrp types.HostPortGroupSpec) error
UpdatePortGroup wraps methods.UpdatePortGroup
func (o HostNetworkSystem) UpdateServiceConsoleVirtualNic(ctx context.Context, device string, nic types.HostVirtualNicSpec) error
UpdateServiceConsoleVirtualNic wraps methods.UpdateServiceConsoleVirtualNic
func (o HostNetworkSystem) UpdateVirtualNic(ctx context.Context, device string, nic types.HostVirtualNicSpec) error
UpdateVirtualNic wraps methods.UpdateVirtualNic
func (o HostNetworkSystem) UpdateVirtualSwitch(ctx context.Context, vswitchName string, spec types.HostVirtualSwitchSpec) error
UpdateVirtualSwitch wraps methods.UpdateVirtualSwitch
func NewHostServiceSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostServiceSystem
func (s HostServiceSystem) Service(ctx context.Context) ([]types.HostService, error)
func NewHostStorageSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostStorageSystem
func (s HostStorageSystem) ComputeDiskPartitionInfo(ctx context.Context, devicePath string, layout types.HostDiskPartitionLayout) (*types.HostDiskPartitionInfo, error)
func (s HostStorageSystem) QueryUnresolvedVmfsVolumes(ctx context.Context) ([]types.HostUnresolvedVmfsVolume, error)
func (s HostStorageSystem) Refresh(ctx context.Context) error
func (s HostStorageSystem) RescanAllHba(ctx context.Context) error
func (s HostStorageSystem) RescanVmfs(ctx context.Context) error
func (s HostStorageSystem) RetrieveDiskPartitionInfo(ctx context.Context, devicePath string) (*types.HostDiskPartitionInfo, error)
func (s HostStorageSystem) UpdateDiskPartitionInfo(ctx context.Context, devicePath string, spec types.HostDiskPartitionSpec) error
func NewHostSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostSystem
func (h HostSystem) ConfigManager() *HostConfigManager
func (h HostSystem) EnterMaintenanceMode(ctx context.Context, timeout int32, evacuate bool, spec *types.HostMaintenanceSpec) (*Task, error)
func (h HostSystem) Reconnect(ctx context.Context, cnxSpec *types.HostConnectSpec, reconnectSpec *types.HostSystemReconnectSpec) (*Task, error)
func (h HostSystem) ResourcePool(ctx context.Context) (*ResourcePool, error)
type HostVirtualNicManager struct { Common Host *HostSystem }
func NewHostVirtualNicManager(c *vim25.Client, ref types.ManagedObjectReference, host types.ManagedObjectReference) *HostVirtualNicManager
func (m HostVirtualNicManager) DeselectVnic(ctx context.Context, nicType string, device string) error
func (m HostVirtualNicManager) Info(ctx context.Context) (*types.HostVirtualNicManagerInfo, error)
func (m HostVirtualNicManager) SelectVnic(ctx context.Context, nicType string, device string) error
func NewHostVsanInternalSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostVsanInternalSystem
func (m HostVsanInternalSystem) DeleteVsanObjects(ctx context.Context, uuids []string, force *bool) ([]types.HostVsanInternalSystemDeleteVsanObjectsResult, error)
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 (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 (m HostVsanInternalSystem) QueryVsanObjectUuidsByFilter(ctx context.Context, uuids []string, limit int32, version int32) ([]string, error)
QueryVsanObjectUuidsByFilter returns vSAN DOM object uuids by filter.
func NewHostVsanSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostVsanSystem
func (s HostVsanSystem) Update(ctx context.Context, config types.VsanHostConfigInfo) (*Task, error)
func (n Network) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error)
EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network
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.
func NewOpaqueNetwork(c *vim25.Client, ref types.ManagedObjectReference) *OpaqueNetwork
func (n OpaqueNetwork) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error)
EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network
func (n OpaqueNetwork) GetInventoryPath() string
func (n OpaqueNetwork) Summary(ctx context.Context) (*types.OpaqueNetworkSummary, error)
Summary returns the mo.OpaqueNetwork.Summary property
func NewOptionManager(c *vim25.Client, ref types.ManagedObjectReference) *OptionManager
func (m OptionManager) Query(ctx context.Context, name string) ([]types.BaseOptionValue, error)
func (m OptionManager) Update(ctx context.Context, value []types.BaseOptionValue) error
type Reference interface { Reference() types.ManagedObjectReference }
func NewResourcePool(c *vim25.Client, ref types.ManagedObjectReference) *ResourcePool
func (p ResourcePool) Create(ctx context.Context, name string, spec types.ResourceConfigSpec) (*ResourcePool, error)
func (p ResourcePool) CreateVApp(ctx context.Context, name string, resSpec types.ResourceConfigSpec, configSpec types.VAppConfigSpec, folder *Folder) (*VirtualApp, error)
func (p ResourcePool) DestroyChildren(ctx context.Context) error
func (p ResourcePool) ImportVApp(ctx context.Context, spec types.BaseImportSpec, folder *Folder, host *HostSystem) (*nfc.Lease, error)
Owner returns the ResourcePool owner as a ClusterComputeResource or ComputeResource.
Code:
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 (p ResourcePool) UpdateConfig(ctx context.Context, name string, config *types.ResourceConfigSpec) error
func NewSearchIndex(c *vim25.Client) *SearchIndex
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 (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 (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 (s SearchIndex) FindByDatastorePath(ctx context.Context, dc *Datacenter, path string) (Reference, error)
FindByDatastorePath finds a virtual machine by its location on a datastore.
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.
FindByInventoryPath finds a managed entity based on its location in the inventory.
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 (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 (s SearchIndex) FindChild(ctx context.Context, entity Reference, name string) (Reference, error)
FindChild finds a particular child based on a managed entity name.
func NewStoragePod(c *vim25.Client, ref types.ManagedObjectReference) *StoragePod
func NewStorageResourceManager(c *vim25.Client) *StorageResourceManager
func (sr StorageResourceManager) ApplyStorageDrsRecommendation(ctx context.Context, key []string) (*Task, error)
func (sr StorageResourceManager) ApplyStorageDrsRecommendationToPod(ctx context.Context, pod *StoragePod, key string) (*Task, error)
func (sr StorageResourceManager) CancelStorageDrsRecommendation(ctx context.Context, key []string) error
func (sr StorageResourceManager) ConfigureDatastoreIORM(ctx context.Context, datastore *Datastore, spec types.StorageIORMConfigSpec, key string) (*Task, error)
func (sr StorageResourceManager) ConfigureStorageDrsForPod(ctx context.Context, pod *StoragePod, spec types.StorageDrsConfigSpec, modify bool) (*Task, error)
func (sr StorageResourceManager) QueryDatastorePerformanceSummary(ctx context.Context, datastore *Datastore) ([]types.StoragePerformanceSummary, error)
func (sr StorageResourceManager) QueryIORMConfigOption(ctx context.Context, host *HostSystem) (*types.StorageIORMConfigOption, error)
func (sr StorageResourceManager) RecommendDatastores(ctx context.Context, storageSpec types.StoragePlacementSpec) (*types.StoragePlacementResult, error)
func (sr StorageResourceManager) RefreshStorageDrsRecommendation(ctx context.Context, pod *StoragePod) error
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.
SetDescription updates task description to describe the current phase of the task.
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.
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.
type VirtualApp struct { *ResourcePool }
func NewVirtualApp(c *vim25.Client, ref types.ManagedObjectReference) *VirtualApp
func (p VirtualApp) Clone(ctx context.Context, name string, target types.ManagedObjectReference, spec types.VAppCloneSpec) (*Task, error)
func (p VirtualApp) CreateChildVM(ctx context.Context, config types.VirtualMachineConfigSpec, host *HostSystem) (*Task, error)
func (p VirtualApp) UpdateConfig(ctx context.Context, spec types.VAppConfigSpec) error
type VirtualDeviceList []types.BaseVirtualDevice
VirtualDeviceList provides helper methods for working with a list of virtual devices.
func EthernetCardTypes() VirtualDeviceList
EthernetCardTypes are used for adding a new ethernet card to a VM.
func SCSIControllerTypes() VirtualDeviceList
SCSIControllerTypes are used for adding a new SCSI controller to a VM.
func (l VirtualDeviceList) AssignController(device types.BaseVirtualDevice, c types.BaseVirtualController)
AssignController assigns a device to a controller.
func (l VirtualDeviceList) BootOrder(order []string) []types.BaseVirtualMachineBootOptionsBootableDevice
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 (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 (l VirtualDeviceList) ConfigSpec(op types.VirtualDeviceConfigSpecOperation) ([]types.BaseVirtualDeviceConfigSpec, error)
ConfigSpec creates a virtual machine configuration spec for the specified operation, for the list of devices in the device list.
func (l VirtualDeviceList) Connect(device types.BaseVirtualDevice) error
Connect changes the device to connected, returns an error if the device is not connectable.
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 (l VirtualDeviceList) CreateCdrom(c *types.VirtualIDEController) (*types.VirtualCdrom, error)
CreateCdrom creates a new VirtualCdrom device which can be added to a VM.
func (l VirtualDeviceList) CreateDisk(c types.BaseVirtualController, ds types.ManagedObjectReference, name string) *types.VirtualDisk
CreateDisk creates a new VirtualDisk device which can be added to a VM.
func (l VirtualDeviceList) CreateEthernetCard(name string, backing types.BaseVirtualDeviceBackingInfo) (types.BaseVirtualDevice, error)
CreateEthernetCard creates a new VirtualEthernetCard of the given name name and initialized with the given backing.
func (l VirtualDeviceList) CreateFloppy() (*types.VirtualFloppy, error)
CreateFloppy creates a new VirtualFloppy device which can be added to a VM.
func (l VirtualDeviceList) CreateIDEController() (types.BaseVirtualDevice, error)
CreateIDEController creates a new IDE controller.
func (l VirtualDeviceList) CreateNVMEController() (types.BaseVirtualDevice, error)
CreateNVMEController creates a new NVMWE controller.
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 (l VirtualDeviceList) CreateSerialPort() (*types.VirtualSerialPort, error)
CreateSerialPort creates a new VirtualSerialPort device which can be added to a VM.
func (l VirtualDeviceList) Disconnect(device types.BaseVirtualDevice) error
Disconnect changes the device to disconnected, returns an error if the device is not connectable.
func (l VirtualDeviceList) DisconnectSerialPort(device *types.VirtualSerialPort) *types.VirtualSerialPort
DisconnectSerialPort disconnects the serial port backing.
func (l VirtualDeviceList) EjectImg(device *types.VirtualFloppy) *types.VirtualFloppy
EjectImg removes the img file based backing and replaces with the default floppy backing.
func (l VirtualDeviceList) EjectIso(device *types.VirtualCdrom) *types.VirtualCdrom
EjectIso removes the iso file based backing and replaces with the default cdrom backing.
func (l VirtualDeviceList) Find(name string) types.BaseVirtualDevice
Find returns the device matching the given name.
func (l VirtualDeviceList) FindByKey(key int32) types.BaseVirtualDevice
FindByKey returns the device matching the given key.
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 (l VirtualDeviceList) FindDiskController(name string) (types.BaseVirtualController, error)
FindDiskController will find an existing ide or scsi disk controller.
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 (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 (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 (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 (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 (l VirtualDeviceList) InsertImg(device *types.VirtualFloppy, img string) *types.VirtualFloppy
InsertImg changes the floppy device backing to use the given img file.
func (l VirtualDeviceList) InsertIso(device *types.VirtualCdrom, iso string) *types.VirtualCdrom
InsertIso changes the cdrom device backing to use the given iso file.
func (l VirtualDeviceList) Name(device types.BaseVirtualDevice) string
Name returns a stable, human-readable name for the given device
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 (l VirtualDeviceList) PickController(kind types.BaseVirtualController) types.BaseVirtualController
PickController returns a controller of the given type(s). If no controllers are found or have no available slots, then nil is returned.
func (l VirtualDeviceList) PrimaryMacAddress() string
PrimaryMacAddress returns the MacAddress field of the primary VirtualEthernetCard
func (l VirtualDeviceList) Select(f func(device types.BaseVirtualDevice) bool) VirtualDeviceList
Select returns a new list containing all elements of the list for which the given func returns true.
func (l VirtualDeviceList) SelectBootOrder(order []types.BaseVirtualMachineBootOptionsBootableDevice) VirtualDeviceList
SelectBootOrder returns an ordered list of devices matching the given bootable device order
func (l VirtualDeviceList) SelectByBackingInfo(backing types.BaseVirtualDeviceBackingInfo) VirtualDeviceList
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.
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 (l VirtualDeviceList) Type(device types.BaseVirtualDevice) string
Type returns a human-readable name for the given device
func (l VirtualDeviceList) TypeName(device types.BaseVirtualDevice) string
TypeName returns the vmodl type name of the device
type VirtualDiskInfo struct { Name string `xml:"unit>name"` DiskType string `xml:"diskType"` Parent string `xml:"parent,omitempty"` }
func NewVirtualDiskManager(c *vim25.Client) *VirtualDiskManager
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 (m VirtualDiskManager) CreateChildDisk(ctx context.Context, parent string, pdc *Datacenter, name string, dc *Datacenter, linked bool) (*Task, error)
func (m VirtualDiskManager) CreateVirtualDisk( ctx context.Context, name string, datacenter *Datacenter, spec types.BaseVirtualDiskSpec) (*Task, error)
CreateVirtualDisk creates a new virtual disk.
func (m VirtualDiskManager) DeleteVirtualDisk(ctx context.Context, name string, dc *Datacenter) (*Task, error)
DeleteVirtualDisk deletes a virtual disk.
func (m VirtualDiskManager) InflateVirtualDisk(ctx context.Context, name string, dc *Datacenter) (*Task, error)
InflateVirtualDisk inflates a virtual disk.
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 (m VirtualDiskManager) QueryVirtualDiskInfo(ctx context.Context, name string, dc *Datacenter, includeParents bool) ([]VirtualDiskInfo, error)
func (m VirtualDiskManager) QueryVirtualDiskUuid(ctx context.Context, name string, dc *Datacenter) (string, error)
Queries virtual disk uuid
func (m VirtualDiskManager) SetVirtualDiskUuid(ctx context.Context, name string, dc *Datacenter, uuid string) error
func (m VirtualDiskManager) ShrinkVirtualDisk(ctx context.Context, name string, dc *Datacenter, copy *bool) (*Task, error)
ShrinkVirtualDisk shrinks a virtual disk.
func NewVirtualMachine(c *vim25.Client, ref types.ManagedObjectReference) *VirtualMachine
func (v VirtualMachine) AcquireTicket(ctx context.Context, kind string) (*types.VirtualMachineTicket, error)
func (v VirtualMachine) AddDevice(ctx context.Context, device ...types.BaseVirtualDevice) error
AddDevice adds the given devices to the VirtualMachine
Answer answers a pending question.
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 (v VirtualMachine) BootOptions(ctx context.Context) (*types.VirtualMachineBootOptions, error)
BootOptions returns the VirtualMachine's config.bootOptions property.
func (v VirtualMachine) Clone(ctx context.Context, folder *Folder, name string, config types.VirtualMachineCloneSpec) (*Task, error)
Code:
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 (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.
Code:
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 (v VirtualMachine) Customize(ctx context.Context, spec types.CustomizationSpec) (*Task, error)
Code:
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
DetachDisk detaches the given disk from the VirtualMachine
func (v VirtualMachine) Device(ctx context.Context) (VirtualDeviceList, error)
Device returns the VirtualMachine's config.hardware.device property.
func (v VirtualMachine) EditDevice(ctx context.Context, device ...types.BaseVirtualDevice) error
EditDevice edits the given (existing) devices on the VirtualMachine
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 (v VirtualMachine) HostSystem(ctx context.Context) (*HostSystem, error)
Code:
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 (v VirtualMachine) InstantClone(ctx context.Context, config types.VirtualMachineInstantCloneSpec) (*Task, error)
IsToolsRunning returns true if VMware Tools is currently running in the guest OS, and false otherwise.
func (v VirtualMachine) MarkAsTemplate(ctx context.Context) error
func (v VirtualMachine) MarkAsVirtualMachine(ctx context.Context, pool ResourcePool, host *HostSystem) error
func (v VirtualMachine) Migrate(ctx context.Context, pool *ResourcePool, host *HostSystem, priority types.VirtualMachineMovePriority, state types.VirtualMachinePowerState) (*Task, error)
func (v VirtualMachine) MountToolsInstaller(ctx context.Context) error
func (v VirtualMachine) PowerState(ctx context.Context) (types.VirtualMachinePowerState, error)
func (v VirtualMachine) PutUsbScanCodes(ctx context.Context, spec types.UsbScanCodeSpec) (int32, error)
func (v VirtualMachine) QueryChangedDiskAreas(ctx context.Context, baseSnapshot, curSnapshot *types.ManagedObjectReference, disk *types.VirtualDisk, offset int64) (types.DiskChangeInfo, error)
func (v VirtualMachine) QueryConfigTarget(ctx context.Context) (*types.ConfigTarget, error)
QueryEnvironmentBrowser is a helper to get the environmentBrowser property.
func (v VirtualMachine) RebootGuest(ctx context.Context) error
func (v VirtualMachine) Reconfigure(ctx context.Context, config types.VirtualMachineConfigSpec) (*Task, error)
Code:
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 (v VirtualMachine) RefreshStorageInfo(ctx context.Context) error
func (v VirtualMachine) Relocate(ctx context.Context, config types.VirtualMachineRelocateSpec, priority types.VirtualMachineMovePriority) (*Task, error)
RemoveAllSnapshot removes all snapshots of a virtual machine
func (v VirtualMachine) RemoveDevice(ctx context.Context, keepFiles bool, device ...types.BaseVirtualDevice) error
RemoveDevice removes the given devices on the VirtualMachine
func (v VirtualMachine) RemoveSnapshot(ctx context.Context, name string, removeChildren bool, consolidate *bool) (*Task, error)
RemoveSnapshot removes a named snapshot
func (v VirtualMachine) ResourcePool(ctx context.Context) (*ResourcePool, error)
Code:
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 (v VirtualMachine) RevertToCurrentSnapshot(ctx context.Context, suppressPowerOn bool) (*Task, error)
RevertToCurrentSnapshot reverts to the current snapshot
func (v VirtualMachine) RevertToSnapshot(ctx context.Context, name string, suppressPowerOn bool) (*Task, error)
RevertToSnapshot reverts to a named snapshot
func (v VirtualMachine) SetBootOptions(ctx context.Context, options *types.VirtualMachineBootOptions) error
SetBootOptions reconfigures the VirtualMachine with the given options.
func (v VirtualMachine) ShutdownGuest(ctx context.Context) error
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 (v VirtualMachine) UnmountToolsInstaller(ctx context.Context) error
func (v VirtualMachine) Unregister(ctx context.Context) 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 (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 (v VirtualMachine) WaitForPowerState(ctx context.Context, state types.VirtualMachinePowerState) error
Wait for the VirtualMachine to change to the desired power state.
type VmwareDistributedVirtualSwitch struct { DistributedVirtualSwitch }
func (s VmwareDistributedVirtualSwitch) GetInventoryPath() string
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 (a *VsanObjExtAttrs) DatastorePath(dir string) string
Package object imports 39 packages (graph) and is imported by 1389 packages. Updated 2021-01-07. Refresh now. Tools for package owners.