Documentation ¶
Index ¶
- Constants
- Variables
- func AsyncGetAllDatacenters(ctx context.Context, buffSize int) (<-chan *Datacenter, <-chan error)
- func AttachTag(ctx context.Context, tagID string, moref types.ManagedObjectReference, ...) error
- func CompareKubernetesMetadata(ctx context.Context, k8sMetaData *cnstypes.CnsKubernetesEntityMetadata, ...) bool
- func CreateCnsKuberenetesEntityReference(entityType string, entityName string, namespace string, clusterid string) cnstypes.CnsKubernetesEntityReference
- func CreateNewCategory(ctx context.Context, categoryName string, cardinality string, ...) (string, error)
- func CreateNewTag(ctx context.Context, categoryId string, tagName string, description string, ...) (string, error)
- func GetCandidateDatastoresInCluster(ctx context.Context, vc *VirtualCenter, clusterID string, ...) ([]*DatastoreInfo, []*DatastoreInfo, error)
- func GetCnsKubernetesEntityMetaData(entityName string, labels map[string]string, deleteFlag bool, ...) *cnstypes.CnsKubernetesEntityMetadata
- func GetContainerCluster(clusterid string, username string, clusterflavor cnstypes.CnsClusterFlavor, ...) cnstypes.CnsContainerCluster
- func GetLabelsMapFromKeyValue(labels []types.KeyValue) map[string]string
- func GetTagManager(ctx context.Context, vc *VirtualCenter) (*tags.Manager, error)
- func GetUUIDFromProviderID(providerID string) string
- func GetUUIDFromVMReference(ctx context.Context, vc *VirtualCenter, vmRef types.ManagedObjectReference) (string, error)
- func GetVcenterIPs(cfg *config.Config) ([]string, error)
- func IsAlreadyExists(err error) (bool, string)
- func IsCnsSnapshotCreatedFaultError(err error) bool
- func IsCnsSnapshotNotFoundError(err error) bool
- func IsInvalidArgumentError(err error) bool
- func IsManagedObjectNotFound(err error, moRef types.ManagedObjectReference) bool
- func IsNotFoundError(err error) bool
- func IsVimFaultNotFoundError(err error) bool
- func IsVolumeCreationSuspended(ctx context.Context, datastoreInfo *DatastoreInfo) bool
- func IsvSphereVersion70U3orAbove(ctx context.Context, aboutInfo types.AboutInfo) (bool, error)
- func IsvSphereVersion80U3orAbove(ctx context.Context, aboutInfo types.AboutInfo) (bool, error)
- func NewCnsClient(ctx context.Context, c *vim25.Client) (*cns.Client, error)
- func NewVslmClient(ctx context.Context, c *vim25.Client) (*vslm.Client, error)
- func ReadVCConfigs(ctx context.Context, vc *VirtualCenter) error
- func UnregisterAllVirtualCenters(ctx context.Context) error
- type ClusterComputeResource
- type Datacenter
- func (dc *Datacenter) GetAllDatastores(ctx context.Context) (map[string]*DatastoreInfo, error)
- func (dc *Datacenter) GetDatastoreInfoByURL(ctx context.Context, datastoreURL string) (*DatastoreInfo, error)
- func (dc *Datacenter) GetVMMoList(ctx context.Context, vmObjList []*VirtualMachine, properties []string) ([]mo.VirtualMachine, error)
- func (dc *Datacenter) GetVirtualMachineByUUID(ctx context.Context, uuid string, instanceUUID bool) (*VirtualMachine, error)
- func (dc *Datacenter) String() string
- type Datastore
- type DatastoreInfo
- func FilterSuspendedDatastores(ctx context.Context, datastoreInfoList []*DatastoreInfo) ([]*DatastoreInfo, error)
- func GetAllAccessibleDatastoresForHosts(ctx context.Context, hosts []*HostSystem) ([]*DatastoreInfo, error)
- func GetDatastoreInfoByURL(ctx context.Context, vc *VirtualCenter, clusterID, dsURL string) (*DatastoreInfo, error)
- func GetSharedDatastoresForHosts(ctx context.Context, hosts []*HostSystem) ([]*DatastoreInfo, error)
- func GetSharedDatastoresForVMs(ctx context.Context, nodeVMs []*VirtualMachine) ([]*DatastoreInfo, error)
- type DiskHealth
- type HostSystem
- func (host *HostSystem) GetAllAccessibleDatastores(ctx context.Context) ([]*DatastoreInfo, error)
- func (host *HostSystem) GetHostVsanCapacity(ctx context.Context) (*VsanHostCapacity, error)
- func (host *HostSystem) GetHostVsanNodeUUID(ctx context.Context) (string, error)
- func (host *HostSystem) QueryPhysicalVsanDisks(ctx context.Context) (VsanPhysicalDiskMap, error)
- type MetricRoundTripper
- type SpbmPolicyContent
- type SpbmPolicyRule
- type SpbmPolicySubProfile
- type VirtualCenter
- func GetVirtualCenterInstance(ctx context.Context, config *config.ConfigurationInfo, reinitialize bool) (*VirtualCenter, error)
- func GetVirtualCenterInstanceForVCenterConfig(ctx context.Context, vcconfig *VirtualCenterConfig, reinitialize bool) (*VirtualCenter, error)
- func GetVirtualCenterInstanceForVCenterHost(ctx context.Context, vcHost string, reconnect bool) (*VirtualCenter, error)
- func (vc *VirtualCenter) Connect(ctx context.Context) error
- func (vc *VirtualCenter) ConnectCns(ctx context.Context) error
- func (vc *VirtualCenter) ConnectPbm(ctx context.Context) error
- func (vc *VirtualCenter) ConnectVsan(ctx context.Context) error
- func (vc *VirtualCenter) ConnectVslm(ctx context.Context) error
- func (vc *VirtualCenter) Disconnect(ctx context.Context) error
- func (vc *VirtualCenter) DisconnectCns(ctx context.Context)
- func (vc *VirtualCenter) DisconnectPbm(ctx context.Context) error
- func (vc *VirtualCenter) DisconnectVsan(ctx context.Context) error
- func (vc *VirtualCenter) DisconnectVslm(ctx context.Context)
- func (vc *VirtualCenter) GetAllVirtualMachines(ctx context.Context, hostObjList []*HostSystem) ([]*object.VirtualMachine, error)
- func (vc *VirtualCenter) GetDatacenters(ctx context.Context) ([]*Datacenter, error)
- func (vc *VirtualCenter) GetDatastoresByCluster(ctx context.Context, clusterMorefValue string) ([]*DatastoreInfo, error)
- func (vc *VirtualCenter) GetHostsByCluster(ctx context.Context, clusterMorefValue string) ([]*HostSystem, error)
- func (vc *VirtualCenter) GetStoragePolicyIDByName(ctx context.Context, storagePolicyName string) (string, error)
- func (vc *VirtualCenter) GetVsanDatastores(ctx context.Context, datacenters []*Datacenter) (map[string]*DatastoreInfo, error)
- func (vc *VirtualCenter) ListDatacenters(ctx context.Context) ([]*Datacenter, error)
- func (vc *VirtualCenter) NewClient(ctx context.Context, useragent string) (*govmomi.Client, error)
- func (vc *VirtualCenter) PbmCheckCompatibility(ctx context.Context, datastores []vimtypes.ManagedObjectReference, ...) (pbm.PlacementCompatibilityResult, error)
- func (vc *VirtualCenter) PbmRetrieveContent(ctx context.Context, policyIds []string) ([]SpbmPolicyContent, error)
- func (vc *VirtualCenter) String() string
- type VirtualCenterConfig
- type VirtualCenterManager
- type VirtualMachine
- func (vm *VirtualMachine) GetAllAccessibleDatastores(ctx context.Context) ([]*DatastoreInfo, error)
- func (vm *VirtualMachine) GetAncestors(ctx context.Context) ([]mo.ManagedEntity, error)
- func (vm *VirtualMachine) GetHostSystem(ctx context.Context) (*object.HostSystem, error)
- func (vm *VirtualMachine) GetTagManager(ctx context.Context) (*tags.Manager, error)
- func (vm *VirtualMachine) GetTopologyLabels(ctx context.Context, tagManager *tags.Manager, ...) error
- func (vm *VirtualMachine) GetZoneRegion(ctx context.Context, zoneCategoryName string, regionCategoryName string, ...) (zone string, region string, err error)
- func (vm *VirtualMachine) IsActive(ctx context.Context) (bool, error)
- func (vm *VirtualMachine) IsInZoneRegion(ctx context.Context, zoneCategoryName string, regionCategoryName string, ...) (bool, error)
- func (vm *VirtualMachine) Renew(ctx context.Context, reconnect bool) error
- func (vm *VirtualMachine) String() string
- type VsanHostCapacity
- type VsanPhysicalDisk
- type VsanPhysicalDiskMap
Constants ¶
const ( // VSphere70u3Version is a 3 digit value to indicate the minimum vSphere // version to use query volume async API. VSphere70u3Version int = 703 // VSphere80u3Version is a 3 digit value to indicate the minimum vSphere // version to ensure calling supported 8.0u3 APIs VSphere80u3Version int = 803 )
const ( // DefaultScheme is the default connection scheme. DefaultScheme = "https" // DefaultRoundTripperCount is the default SOAP round tripper count. DefaultRoundTripperCount = 3 )
const DatastoreInfoProperty = "info"
DatastoreInfoProperty refers to the property name info for the Datastore.
Variables ¶
var ( ErrNoAccessibleDSFound = errors.New("no accessible datastores found among given hosts") )
var ( // ErrVCAlreadyRegistered is returned when registration for a previously // registered virtual center is attempted. ErrVCAlreadyRegistered = errors.New("virtual center was already registered") // ErrVCNotFound is returned when a virtual center instance isn't found. ErrVCNotFound = errors.New("virtual center wasn't found in registry") )
var ( // ErrVMNotFound is returned when a virtual machine isn't found. ErrVMNotFound = errors.New("virtual machine wasn't found") // ErrNoSharedDatastoresFound is raised when no shared datastores are found among the given NodeVMs. ErrInvalidVC = errors.New("invalid VC Object") )
var ( // ErrNotSupported represents not supported error. ErrNotSupported = errors.New("not supported") )
Functions ¶
func AsyncGetAllDatacenters ¶
func AsyncGetAllDatacenters(ctx context.Context, buffSize int) (<-chan *Datacenter, <-chan error)
AsyncGetAllDatacenters fetches all Datacenters asynchronously. The *Datacenter chan returns a *Datacenter on discovering one. The error chan returns a single error if one occurs. Both channels are closed when nothing more is to be sent.
The buffer size for the *Datacenter chan can be specified via the buffSize parameter. For example, buffSize could be 1, in which case, the sender will buffer at most 1 *Datacenter instance (and possibly close the channel and terminate, if that was the only instance found).
Note that a context.Canceled error would be returned if the context was canceled at some point during the execution of this function.
func AttachTag ¶ added in v3.3.0
func AttachTag(ctx context.Context, tagID string, moref types.ManagedObjectReference, tagManager *tags.Manager) error
AttachTag attaches a tag to the given managed object
func CompareKubernetesMetadata ¶
func CompareKubernetesMetadata(ctx context.Context, k8sMetaData *cnstypes.CnsKubernetesEntityMetadata, cnsMetaData *cnstypes.CnsKubernetesEntityMetadata) bool
CompareKubernetesMetadata compares the whole CnsKubernetesEntityMetadata from two given parameters.
func CreateCnsKuberenetesEntityReference ¶
func CreateCnsKuberenetesEntityReference(entityType string, entityName string, namespace string, clusterid string) cnstypes.CnsKubernetesEntityReference
CreateCnsKuberenetesEntityReference returns an EntityReference object to which the given entity refers to.
func CreateNewCategory ¶ added in v3.3.0
func CreateNewCategory(ctx context.Context, categoryName string, cardinality string, tagManager *tags.Manager) (string, error)
CreateNewCategory creates a new category using tag manager
func CreateNewTag ¶ added in v3.3.0
func CreateNewTag(ctx context.Context, categoryId string, tagName string, description string, tagManager *tags.Manager) (string, error)
CreateNewTag creates a new tag within the given category
func GetCandidateDatastoresInCluster ¶
func GetCandidateDatastoresInCluster(ctx context.Context, vc *VirtualCenter, clusterID string, includevSANDirectDatastores bool) ([]*DatastoreInfo, []*DatastoreInfo, error)
GetCandidateDatastoresInCluster gets the shared datastores and vSAN-direct managed datastores of given VC cluster. The 1st output parameter will be shared datastores. The 2nd output parameter will be vSAN-direct managed datastores. NOTE: The second output will be an empty list if `includevSANDirectDatastores` is set to false.
func GetCnsKubernetesEntityMetaData ¶
func GetCnsKubernetesEntityMetaData(entityName string, labels map[string]string, deleteFlag bool, entityType string, namespace string, clusterID string, referredEntity []cnstypes.CnsKubernetesEntityReference) *cnstypes.CnsKubernetesEntityMetadata
GetCnsKubernetesEntityMetaData creates a CnsKubernetesEntityMetadataObject object from given parameters.
func GetContainerCluster ¶
func GetContainerCluster(clusterid string, username string, clusterflavor cnstypes.CnsClusterFlavor, clusterdistribution string) cnstypes.CnsContainerCluster
GetContainerCluster creates ContainerCluster object from given parameters.
func GetLabelsMapFromKeyValue ¶
GetLabelsMapFromKeyValue creates a map object from given parameter.
func GetTagManager ¶
GetTagManager returns tagManager connected to given VirtualCenter.
func GetUUIDFromProviderID ¶
GetUUIDFromProviderID Returns VM UUID from Node's providerID.
func GetUUIDFromVMReference ¶
func GetUUIDFromVMReference(ctx context.Context, vc *VirtualCenter, vmRef types.ManagedObjectReference) ( string, error)
GetUUIDFromVMReference fetches the UUID of the VM by looking at the config.uuid property from the VM ref.
func GetVcenterIPs ¶
GetVcenterIPs returns list of vCenter IPs from VSphereConfig.
func IsAlreadyExists ¶
IsAlreadyExists checks if err is the AlreadyExists fault. If the error is AlreadyExists fault, the method returns true along with the name of the managed object. Otherwise, returns false.
func IsCnsSnapshotCreatedFaultError ¶ added in v3.2.0
IsCnsSnapshotCreatedFaultError checks if err is the CnsSnapshotCreatedFault fault returned by CNS CreateSnapshots API. This fault is returned by CNS in case snapshot creation is successful, but post-processing failed (like update db failed).
func IsCnsSnapshotNotFoundError ¶
IsCnsSnapshotNotFoundError checks if err is the CnsSnapshotNotFoundFault fault returned by CNS QuerySnapshots API
func IsInvalidArgumentError ¶
func IsManagedObjectNotFound ¶
func IsManagedObjectNotFound(err error, moRef types.ManagedObjectReference) bool
IsManagedObjectNotFound checks if err is the ManagedObjectNotFound fault. Returns true, if 'err' is a MnagedObjectNotFound fault for the intended 'moRef' object. Otherwise, return false.
func IsNotFoundError ¶
IsNotFoundError checks if err is the NotFound fault.
func IsVimFaultNotFoundError ¶
func IsVolumeCreationSuspended ¶
func IsVolumeCreationSuspended(ctx context.Context, datastoreInfo *DatastoreInfo) bool
IsVolumeCreationSuspended checks whether a given Datastore has cns.vmware.com/datastoreSuspended customValue
func IsvSphereVersion70U3orAbove ¶
IsvSphereVersion70U3orAbove checks if specified version is 7.0 Update 3 or higher. The method takes aboutInfo as input which contains details about VC version, build number and so on. If the version is 7.0 Update 3 or higher, returns true, else returns false along with appropriate errors for the failure.
func IsvSphereVersion80U3orAbove ¶ added in v3.2.0
IsvSphereVersion80U3orAbove checks if specified version is 8.0 Update 3 or higher. The method takes aboutInfo as input which contains details about VC version, build number and so on. If the version is 8.0 Update 3 or higher, returns true, else returns false along with appropriate errors for the failure.
func NewCnsClient ¶
NewCnsClient creates a new CNS client
func NewVslmClient ¶
NewVslmClient creates a new Vslm client
func ReadVCConfigs ¶ added in v3.1.0
func ReadVCConfigs(ctx context.Context, vc *VirtualCenter) error
ReadVCConfigs will ensure we are always reading the latest config before attempting to create a new govmomi client. It works in case of both vanilla (including multi-vc) and wcp
func UnregisterAllVirtualCenters ¶
UnregisterAllVirtualCenters helps unregister and logout all registered vCenter instances This function is called before exiting container to logout current sessions
Types ¶
type ClusterComputeResource ¶ added in v3.1.0
type ClusterComputeResource struct { // ClusterComputeResource represents a vSphere cluster. *object.ClusterComputeResource // VirtualCenterHost denotes the virtual center host address. VirtualCenterHost string }
ClusterComputeResource holds details of a cluster instance.
func (*ClusterComputeResource) GetHosts ¶ added in v3.1.0
func (ccr *ClusterComputeResource) GetHosts(ctx context.Context) ([]*HostSystem, error)
GetHosts fetches the hosts under the ClusterComputeResource.
type Datacenter ¶
type Datacenter struct { // Datacenter represents the govmomi Datacenter. *object.Datacenter // VirtualCenterHost represents the virtual center host address. VirtualCenterHost string }
Datacenter holds virtual center information along with the Datacenter.
func (*Datacenter) GetAllDatastores ¶
func (dc *Datacenter) GetAllDatastores(ctx context.Context) (map[string]*DatastoreInfo, error)
GetAllDatastores gets the datastore URL to DatastoreInfo map for all the datastores in the datacenter.
func (*Datacenter) GetDatastoreInfoByURL ¶
func (dc *Datacenter) GetDatastoreInfoByURL(ctx context.Context, datastoreURL string) (*DatastoreInfo, error)
GetDatastoreInfoByURL returns the *DatastoreInfo instance given its URL.
func (*Datacenter) GetVMMoList ¶
func (dc *Datacenter) GetVMMoList(ctx context.Context, vmObjList []*VirtualMachine, properties []string) ([]mo.VirtualMachine, error)
GetVMMoList gets the VM Managed Objects with the given properties from the VM object.
func (*Datacenter) GetVirtualMachineByUUID ¶
func (dc *Datacenter) GetVirtualMachineByUUID(ctx context.Context, uuid string, instanceUUID bool) (*VirtualMachine, error)
GetVirtualMachineByUUID returns the VirtualMachine instance given its UUID in a datacenter. If instanceUUID is set to true, then UUID is an instance UUID.
- In this case, this function searches for virtual machines whose instance UUID matches the given uuid.
If instanceUUID is set to false, then UUID is BIOS UUID.
- In this case, this function searches for virtual machines whose BIOS UUID matches the given uuid.
func (*Datacenter) String ¶
func (dc *Datacenter) String() string
type Datastore ¶
type Datastore struct { // Datastore represents the govmomi Datastore instance. *object.Datastore // Datacenter represents the datacenter on which the Datastore resides. Datacenter *Datacenter }
Datastore holds Datastore and Datacenter information.
type DatastoreInfo ¶
type DatastoreInfo struct { *Datastore Info *types.DatastoreInfo CustomValues []types.BaseCustomFieldValue }
DatastoreInfo is a structure to store the Datastore and it's Info.
func FilterSuspendedDatastores ¶
func FilterSuspendedDatastores(ctx context.Context, datastoreInfoList []*DatastoreInfo) ([]*DatastoreInfo, error)
FilterSuspendedDatastores filters out datastores which cns.vmware.com/datastoreSuspended customValue
func GetAllAccessibleDatastoresForHosts ¶ added in v3.2.0
func GetAllAccessibleDatastoresForHosts(ctx context.Context, hosts []*HostSystem) ([]*DatastoreInfo, error)
GetAllAccessibleDatastoresForHosts returns an union of all the datastores accessible to each host in the hosts parameter.
func GetDatastoreInfoByURL ¶
func GetDatastoreInfoByURL(ctx context.Context, vc *VirtualCenter, clusterID, dsURL string) (*DatastoreInfo, error)
GetDatastoreInfoByURL returns info of a datastore found in given cluster whose URL matches the specified datastore URL.
func GetSharedDatastoresForHosts ¶ added in v3.1.0
func GetSharedDatastoresForHosts(ctx context.Context, hosts []*HostSystem) ([]*DatastoreInfo, error)
GetSharedDatastoresForHosts returns an intersection of datastores accessible to each host in the hosts parameter.
func GetSharedDatastoresForVMs ¶
func GetSharedDatastoresForVMs(ctx context.Context, nodeVMs []*VirtualMachine) ([]*DatastoreInfo, error)
GetSharedDatastoresForVMs returns shared datastores accessible to specified nodeVMs list.
func (DatastoreInfo) String ¶
func (di DatastoreInfo) String() string
type DiskHealth ¶
type HostSystem ¶
type HostSystem struct { // HostSystem represents the host system. *object.HostSystem }
HostSystem holds details of a host instance.
func (*HostSystem) GetAllAccessibleDatastores ¶
func (host *HostSystem) GetAllAccessibleDatastores(ctx context.Context) ([]*DatastoreInfo, error)
GetAllAccessibleDatastores gets the list of accessible datastores for the given host.
func (*HostSystem) GetHostVsanCapacity ¶
func (host *HostSystem) GetHostVsanCapacity(ctx context.Context) (*VsanHostCapacity, error)
GetHostVsanCapacity wraps around QueryPhysicalVsanDisks to sum up all the capacity disks of a host.
func (*HostSystem) GetHostVsanNodeUUID ¶
func (host *HostSystem) GetHostVsanNodeUUID(ctx context.Context) (string, error)
GetHostVsanNodeUUID gets the vSAN NodeUuid for this host.
func (*HostSystem) QueryPhysicalVsanDisks ¶
func (host *HostSystem) QueryPhysicalVsanDisks(ctx context.Context) (VsanPhysicalDiskMap, error)
QueryPhysicalVsanDisks wraps the underlying vSAN API and unmarshals the JSON result as well.
type MetricRoundTripper ¶ added in v3.2.0
type MetricRoundTripper struct {
// contains filtered or unexported fields
}
type SpbmPolicyContent ¶
type SpbmPolicyContent struct { ID string `json:"id,omitempty"` Profiles []SpbmPolicySubProfile `json:"profiles"` }
SpbmPolicyContent corresponds to a single VC SPBM policy. The various sub profilles are ORed. For vSAN there should only be a single sub profile.
type SpbmPolicyRule ¶
type SpbmPolicyRule struct { Ns string `json:"ns,omitempty"` CapID string `json:"capId,omitempty"` PropID string `json:"propId,omitempty"` Value string `json:"value,omitempty"` }
SpbmPolicyRule is an individual policy rule. Not all providers use Ns, CapID, PropID in the same way, so one needs to look at each one individually. Ns + CapID + PropID together are a unique key in all cases
type SpbmPolicySubProfile ¶
type SpbmPolicySubProfile struct {
Rules []SpbmPolicyRule `json:"rules"`
}
SpbmPolicySubProfile is a combination of rules, which are ANDed to form a sub profile.
type VirtualCenter ¶
type VirtualCenter struct { // Config represents the virtual center configuration. Config *VirtualCenterConfig // Client represents the govmomi client instance for the connection. Client *govmomi.Client // PbmClient represents the govmomi PBM Client instance. PbmClient *pbm.Client // CnsClient represents the CNS client instance. CnsClient *cns.Client // VsanClient represents the VSAN client instance. VsanClient *vsan.Client // VslmClient represents the Vslm client instance. VslmClient *vslm.Client // ClientMutex is used for exclusive connection creation. ClientMutex *sync.Mutex }
VirtualCenter holds details of a virtual center instance.
func GetVirtualCenterInstance ¶
func GetVirtualCenterInstance(ctx context.Context, config *config.ConfigurationInfo, reinitialize bool) (*VirtualCenter, error)
GetVirtualCenterInstance returns the vcenter object singleton. It is thread safe. Takes in a boolean paramater reloadConfig. If reinitialize is true, the vcenter object is instantiated again and the old object becomes eligible for garbage collection. If reinitialize is false and instance was already initialized, the previous instance is returned.
func GetVirtualCenterInstanceForVCenterConfig ¶
func GetVirtualCenterInstanceForVCenterConfig(ctx context.Context, vcconfig *VirtualCenterConfig, reinitialize bool) (*VirtualCenter, error)
GetVirtualCenterInstanceForVCenterConfig returns the vcenter object for given vCenter Config Takes in a boolean paramater reloadConfig. If reinitialize is true, the vcenter object is instantiated again and the old object becomes eligible for garbage collection. If reinitialize is false and instance was already initialized, the previous instance is returned.
func GetVirtualCenterInstanceForVCenterHost ¶
func GetVirtualCenterInstanceForVCenterHost(ctx context.Context, vcHost string, reconnect bool) (*VirtualCenter, error)
GetVirtualCenterInstanceForVCenterHost returns the vcenter object for given vCenter host.
func (*VirtualCenter) Connect ¶
func (vc *VirtualCenter) Connect(ctx context.Context) error
Connect establishes a new connection with vSphere with updated credentials. If credentials are invalid then it fails the connection.
func (*VirtualCenter) ConnectCns ¶
func (vc *VirtualCenter) ConnectCns(ctx context.Context) error
ConnectCns creates a CNS client for the virtual center.
func (*VirtualCenter) ConnectPbm ¶
func (vc *VirtualCenter) ConnectPbm(ctx context.Context) error
ConnectPbm creates a PBM client for the virtual center.
func (*VirtualCenter) ConnectVsan ¶
func (vc *VirtualCenter) ConnectVsan(ctx context.Context) error
ConnectVsan creates a VSAN client for the virtual center.
func (*VirtualCenter) ConnectVslm ¶
func (vc *VirtualCenter) ConnectVslm(ctx context.Context) error
ConnectVslm creates a Vslm client for the virtual center.
func (*VirtualCenter) Disconnect ¶
func (vc *VirtualCenter) Disconnect(ctx context.Context) error
Disconnect disconnects the virtual center host connection if connected.
func (*VirtualCenter) DisconnectCns ¶
func (vc *VirtualCenter) DisconnectCns(ctx context.Context)
DisconnectCns destroys the CNS client for the virtual center.
func (*VirtualCenter) DisconnectPbm ¶
func (vc *VirtualCenter) DisconnectPbm(ctx context.Context) error
DisconnectPbm destroys the PBM client for the virtual center.
func (*VirtualCenter) DisconnectVsan ¶
func (vc *VirtualCenter) DisconnectVsan(ctx context.Context) error
DisconnectVsan destroys the VSAN client for the virtual center.
func (*VirtualCenter) DisconnectVslm ¶
func (vc *VirtualCenter) DisconnectVslm(ctx context.Context)
DisconnectVslm destroys the Vslm client for the virtual center.
func (*VirtualCenter) GetAllVirtualMachines ¶
func (vc *VirtualCenter) GetAllVirtualMachines(ctx context.Context, hostObjList []*HostSystem) ([]*object.VirtualMachine, error)
GetAllVirtualMachines gets the VM Managed Objects with the given properties from the VM object.
func (*VirtualCenter) GetDatacenters ¶
func (vc *VirtualCenter) GetDatacenters(ctx context.Context) ([]*Datacenter, error)
GetDatacenters returns Datacenters found on the VirtualCenter. If no datacenters are mentioned in the VirtualCenterConfig during registration, all Datacenters for the given VirtualCenter will be returned. If DatacenterPaths is configured in VirtualCenterConfig during registration, only the listed Datacenters are returned.
func (*VirtualCenter) GetDatastoresByCluster ¶
func (vc *VirtualCenter) GetDatastoresByCluster(ctx context.Context, clusterMorefValue string) ([]*DatastoreInfo, error)
GetDatastoresByCluster return datastores inside the cluster using its moref. NOTE: The return value can contain duplicates.
func (*VirtualCenter) GetHostsByCluster ¶
func (vc *VirtualCenter) GetHostsByCluster(ctx context.Context, clusterMorefValue string) ([]*HostSystem, error)
GetHostsByCluster return hosts inside the cluster using cluster moref.
func (*VirtualCenter) GetStoragePolicyIDByName ¶
func (vc *VirtualCenter) GetStoragePolicyIDByName(ctx context.Context, storagePolicyName string) (string, error)
GetStoragePolicyIDByName gets storage policy ID by name.
func (*VirtualCenter) GetVsanDatastores ¶
func (vc *VirtualCenter) GetVsanDatastores(ctx context.Context, datacenters []*Datacenter) (map[string]*DatastoreInfo, error)
GetVsanDatastores returns all the datastore URL to DatastoreInfo map for all the vSAN datastores in the VC.
func (*VirtualCenter) ListDatacenters ¶
func (vc *VirtualCenter) ListDatacenters(ctx context.Context) ( []*Datacenter, error)
ListDatacenters returns all Datacenters.
func (*VirtualCenter) PbmCheckCompatibility ¶
func (vc *VirtualCenter) PbmCheckCompatibility(ctx context.Context, datastores []vimtypes.ManagedObjectReference, profileID string) (pbm.PlacementCompatibilityResult, error)
PbmCheckCompatibility performs a compatibility check for the given profileID with the given datastores.
func (*VirtualCenter) PbmRetrieveContent ¶
func (vc *VirtualCenter) PbmRetrieveContent(ctx context.Context, policyIds []string) ([]SpbmPolicyContent, error)
PbmRetrieveContent fetches the policy content of all given policies from SPBM.
func (*VirtualCenter) String ¶
func (vc *VirtualCenter) String() string
type VirtualCenterConfig ¶
type VirtualCenterConfig struct { // Scheme represents the connection scheme. (Ex: https) Scheme string // Host represents the virtual center host address. Host string // Port represents the virtual center host port. Port int // Username represents the virtual center username. Username string // Password represents the virtual center password in clear text. Password string // Specifies whether to verify the server's certificate chain. Set to true to // skip verification. Insecure bool // Specifies the path to a CA certificate in PEM format. This has no effect // if Insecure is enabled. Optional; if not configured, the system's CA // certificates will be used. CAFile string // Thumbprint specifies the certificate thumbprint to use. This has no effect // if InsecureFlag is enabled. Thumbprint string // RoundTripperCount is the SOAP round tripper count. // retries = RoundTripperCount - 1 RoundTripperCount int // DatacenterPaths represents paths of datacenters on the virtual center. DatacenterPaths []string // on which file volumes can be created. TargetvSANFileShareClusters []string // QueryLimit specifies the number of volumes that can be fetched by CNS // QueryAll API at a time QueryLimit int // ListVolumeThreshold specifies the maximum number of differences in volume that // can exist between CNS and kubernetes ListVolumeThreshold int // MigrationDataStore specifies datastore which is set as default datastore in legacy cloud-config // and hence should be used as default datastore. MigrationDataStoreURL string // when ReloadVCConfigForNewClient is set to true it forces re-read config secret when // new vc client needs to be created ReloadVCConfigForNewClient bool }
VirtualCenterConfig represents virtual center configuration.
func GetVirtualCenterConfig ¶
GetVirtualCenterConfig returns VirtualCenterConfig Object created using vSphere Configuration specified in the argument.
func GetVirtualCenterConfigs ¶
func GetVirtualCenterConfigs(ctx context.Context, cfg *config.Config) ([]*VirtualCenterConfig, error)
GetVirtualCenterConfigs returns VirtualCenterConfig Objects created using vSphere Configuration specified in the argument.
type VirtualCenterManager ¶
type VirtualCenterManager interface { // GetVirtualCenter returns the VirtualCenter instance given the host. GetVirtualCenter(ctx context.Context, host string) (*VirtualCenter, error) // GetAllVirtualCenters returns all VirtualCenter instances. If virtual // centers are added or removed concurrently, they may or may not be // reflected in the result of a call to this method. GetAllVirtualCenters() []*VirtualCenter // RegisterVirtualCenter registers a virtual center, but doesn't initiate // the connection to the host. RegisterVirtualCenter(ctx context.Context, config *VirtualCenterConfig) (*VirtualCenter, error) // UnregisterVirtualCenter disconnects and unregisters the virtual center // given it's host. UnregisterVirtualCenter(ctx context.Context, host string) error // UnregisterAllVirtualCenters disconnects and unregisters all virtual centers. UnregisterAllVirtualCenters(ctx context.Context) error // IsvSANFileServicesSupported checks if vSAN file services is supported or not. IsvSANFileServicesSupported(ctx context.Context, host string) (bool, error) // IsOnlineExtendVolumeSupported checks if online extend volume is supported // or not on the vCenter Host. IsOnlineExtendVolumeSupported(ctx context.Context, host string) (bool, error) // IsCnsSnapshotSupported checks if cns volume snapshot is supported // or not on the vCenter Host. IsCnsSnapshotSupported(ctx context.Context, host string) (bool, error) }
VirtualCenterManager provides functionality to manage virtual centers.
func GetVirtualCenterManager ¶
func GetVirtualCenterManager(ctx context.Context) VirtualCenterManager
GetVirtualCenterManager returns the VirtualCenterManager singleton.
type VirtualMachine ¶
type VirtualMachine struct { // VirtualCenterHost represents the virtual machine's vCenter host. VirtualCenterHost string // UUID represents the virtual machine's UUID. UUID string // VirtualMachine represents the virtual machine. *object.VirtualMachine // Datacenter represents the datacenter to which the virtual machine belongs. Datacenter *Datacenter }
VirtualMachine holds details of a virtual machine instance.
func GetVirtualMachineByUUID ¶
func GetVirtualMachineByUUID(ctx context.Context, uuid string, instanceUUID bool) (*VirtualMachine, error)
GetVirtualMachineByUUID returns virtual machine given its UUID in entire VC. If instanceUuid is set to true, then UUID is an instance UUID. In this case, this function searches for virtual machines whose instance UUID matches the given uuid. If instanceUuid is set to false, then UUID is BIOS UUID. In this case, this function searches for virtual machines whose BIOS UUID matches the given uuid.
func (*VirtualMachine) GetAllAccessibleDatastores ¶
func (vm *VirtualMachine) GetAllAccessibleDatastores(ctx context.Context) ([]*DatastoreInfo, error)
GetAllAccessibleDatastores gets the list of accessible Datastores for the given Virtual Machine.
func (*VirtualMachine) GetAncestors ¶
func (vm *VirtualMachine) GetAncestors(ctx context.Context) ([]mo.ManagedEntity, error)
GetAncestors returns ancestors of VM. Example result: "Folder", "Datacenter", "Cluster".
func (*VirtualMachine) GetHostSystem ¶
func (vm *VirtualMachine) GetHostSystem(ctx context.Context) (*object.HostSystem, error)
GetHostSystem returns HostSystem object of the virtual machine.
func (*VirtualMachine) GetTagManager ¶
GetTagManager returns tagManager using vm client.
func (*VirtualMachine) GetTopologyLabels ¶
func (vm *VirtualMachine) GetTopologyLabels(ctx context.Context, tagManager *tags.Manager, topologyCategories map[string]string) error
GetTopologyLabels populates the topology labels of the nodeVM in topologyCategories parameter given the category names.
func (*VirtualMachine) GetZoneRegion ¶
func (vm *VirtualMachine) GetZoneRegion(ctx context.Context, zoneCategoryName string, regionCategoryName string, tagManager *tags.Manager) (zone string, region string, err error)
GetZoneRegion returns zone and region of the node vm.
func (*VirtualMachine) IsActive ¶
func (vm *VirtualMachine) IsActive(ctx context.Context) (bool, error)
IsActive returns true if Virtual Machine is powered on, else returns false.
func (*VirtualMachine) IsInZoneRegion ¶
func (vm *VirtualMachine) IsInZoneRegion(ctx context.Context, zoneCategoryName string, regionCategoryName string, zoneValue string, regionValue string, tagManager *tags.Manager) (bool, error)
IsInZoneRegion checks if VM belongs to specified zone and region. This function returns true if yes, false otherwise.
func (*VirtualMachine) Renew ¶
func (vm *VirtualMachine) Renew(ctx context.Context, reconnect bool) error
Renew renews the virtual machine and datacenter information. If reconnect is set to true, the virtual center connection is also renewed.
func (*VirtualMachine) String ¶
func (vm *VirtualMachine) String() string
type VsanHostCapacity ¶
type VsanHostCapacity struct { Capacity int64 CapacityReserved int64 CapacityUsed int64 HostMoID string }
VsanHostCapacity captures the capacity info of a host. It exists to support the API within this Go helper module.
type VsanPhysicalDisk ¶
type VsanPhysicalDisk struct { IsSSD int `json:"isSsd,omitempty"` SsdUUID string `json:"ssdUuid,omitempty"` Capacity int64 `json:"capacity,omitempty"` CapacityReserved int64 `json:"capacityReserved,omitempty"` CapacityUsed int64 `json:"capacityUsed,omitempty"` IsAllFlash int `json:"isAllFlash,omitempty"` Disk_Health DiskHealth `json:"disk_health,omitempty"` }
VsanPhysicalDisk reflects the fields of JSON structure emitted by the VsanInternalSystem.QueryPhysicalVsanDisks API that we care about.
type VsanPhysicalDiskMap ¶
type VsanPhysicalDiskMap map[string]VsanPhysicalDisk
VsanPhysicalDiskMap is what VsanInternalSystem.QueryPhysicalVsanDisks returns