Documentation
¶
Index ¶
- Constants
- func GetLastRestartTimeFromExtraConfig(ctx context.Context, extraConfig []vimtypes.BaseOptionValue) (*time.Time, error)
- func IsTaskInfoErrorInvalidGuestID(taskInfo *vimtypes.TaskInfo) bool
- func ManagedObjectFromMoRef(moRef vimtypes.ManagedObjectReference) mo.VirtualMachine
- func ManagedObjectFromObject(obj *object.VirtualMachine) mo.VirtualMachine
- func ParsePowerState(m string) vimtypes.VirtualMachinePowerState
- func Restart(ctx context.Context, client *vim25.Client, mo mo.VirtualMachine, ...) <-chan any
- func SetPowerState(ctx context.Context, client *vim25.Client, mo mo.VirtualMachine, ...) <-chan any
- type ErrInvalidPowerOpBehavior
- type ErrInvalidPowerOpResult
- type ErrInvalidPowerState
- type PowerOpBehavior
- type PowerOpResult
- type ReconcileMinHardwareVersionResult
Constants ¶
const ( HardwareVersionProperty = "config.version" PowerStateProperty = "runtime.powerState" )
const ( ReconcileMinHardwareVersionResultUpgraded = iota + 1 ReconcileMinHardwareVersionResultNotPoweredOff ReconcileMinHardwareVersionResultAlreadyUpgraded ReconcileMinHardwareVersionResultMinHardwareVersionZero )
const DefaultTrySoftTimeout = 5 * time.Minute
DefaultTrySoftTimeout is the default amount of time a TrySoft operation waits for a desired power state to be realized before switching to a Hard operation.
const ( // ExtraConfigKeyLastRestartTime is the name of the key in a VM's // ExtraConfig array that contains the epoch of the last time the VM was // restarted. ExtraConfigKeyLastRestartTime = "vmservice.lastRestartTime" )
const GuestIDProperty = "configSpec.guestId"
GuestIDProperty is the property name for the guest ID in the config spec.
Variables ¶
This section is empty.
Functions ¶
func GetLastRestartTimeFromExtraConfig ¶
func GetLastRestartTimeFromExtraConfig( ctx context.Context, extraConfig []vimtypes.BaseOptionValue) (*time.Time, error)
GetLastRestartTimeFromExtraConfig inspects the provided ExtraConfig for the key "vmservice.lastRestartTime" and returns its value. If not found, nil is returned. If the key exists but the value is not an epoch, then an error is returned.
func IsTaskInfoErrorInvalidGuestID ¶ added in v1.9.0
IsTaskInfoErrorInvalidGuestID returns true if the provided taskInfo contains an error with a fault that indicates the underlying cause is an invalid guest ID.
func ManagedObjectFromMoRef ¶
func ManagedObjectFromMoRef(moRef vimtypes.ManagedObjectReference) mo.VirtualMachine
func ManagedObjectFromObject ¶
func ManagedObjectFromObject(obj *object.VirtualMachine) mo.VirtualMachine
func ParsePowerState ¶
func ParsePowerState(m string) vimtypes.VirtualMachinePowerState
ParsePowerState parses a VM Op API PowerState and returns the corresponding vim25 value.
func Restart ¶
func Restart( ctx context.Context, client *vim25.Client, mo mo.VirtualMachine, fetchProperties bool, desiredLastRestartTime time.Time, powerOpBehavior PowerOpBehavior) <-chan any
Restart restarts a VM if the provided lastRestart timestamp occurs after the last time the VM was restarted. If fetchProperties is true, then even if already known, the required properties are fetched from vSphere. Either a PowerOpResult or error object will be sent on the returned channel prior to its closure.
func SetPowerState ¶
func SetPowerState( ctx context.Context, client *vim25.Client, mo mo.VirtualMachine, fetchProperties bool, desiredPowerState vimtypes.VirtualMachinePowerState, powerOpBehavior PowerOpBehavior) <-chan any
SetPowerState updates a VM's power state if the power state in the provided, managed object is missing or does not match the desired power state. If fetchProperties is true, then even if already known, the required properties are fetched from vSphere. Either a PowerOpResult or error object will be sent on the returned channel prior to its closure.
Types ¶
type ErrInvalidPowerOpBehavior ¶
type ErrInvalidPowerOpBehavior struct {
PowerOpBehavior PowerOpBehavior
}
ErrInvalidPowerOpBehavior is returned if a power op behavior is not one of the pre-defined constants that map to PowerOpBehavior in this package.
func (ErrInvalidPowerOpBehavior) Error ¶
func (e ErrInvalidPowerOpBehavior) Error() string
Error enables this type to be returned as a Golang error object.
type ErrInvalidPowerOpResult ¶
type ErrInvalidPowerOpResult struct {
PowerOpResult any
}
ErrInvalidPowerOpResult is returned if the channel returned by SetPowerState and/or Restart receives a value that is a type other than PowerOpResult or error.
func (ErrInvalidPowerOpResult) Error ¶
func (e ErrInvalidPowerOpResult) Error() string
Error enables this type to be returned as a Golang error object.
type ErrInvalidPowerState ¶
type ErrInvalidPowerState struct {
PowerState vimtypes.VirtualMachinePowerState
}
ErrInvalidPowerState is returned if a power state does not map to "poweredOff", "poweredOn", or "suspended".
func (ErrInvalidPowerState) Error ¶
func (e ErrInvalidPowerState) Error() string
Error enables this type to be returned as a Golang error object.
type PowerOpBehavior ¶
type PowerOpBehavior uint8
PowerOpBehavior indicates the three behaviors for powering off or suspending a VM.
const ( // PowerOpBehaviorHard causes a VM to be powered off with the PowerOff API // or to be suspended with the Suspend API. PowerOpBehaviorHard PowerOpBehavior = iota + 1 // PowerOpBehaviorSoft causes a VM to be powered off with the ShutdownGuest // API or to be suspended with the StandbyGuest API. PowerOpBehaviorSoft // PowerOpBehaviorTrySoft causes an attempt to use the soft behavior, and // if the VM is not in the desired power state after 10 minutes, the next // attempt falls back to the hard behavior. PowerOpBehaviorTrySoft )
func ParsePowerOpMode ¶
func ParsePowerOpMode(m string) PowerOpBehavior
ParsePowerOpMode parses a VM Op API PowerOpMode and returns the corresponding PowerOpBehavior.
func (PowerOpBehavior) String ¶
func (b PowerOpBehavior) String() string
String returns the stringified name of the behavior.
type PowerOpResult ¶
type PowerOpResult uint8
PowerOpResult represents one of the possible results when calling SetPowerState or SetAndWaitOnPowerState.
const ( // PowerOpResultNone indicates the power state was not changed // because the VM's power state matched the desired power state. PowerOpResultNone PowerOpResult = iota // PowerOpResultChanged indicates the power state was changed. // This is set if the VM was powered on. PowerOpResultChanged // PowerOpResultChangedHard indicates the power state was changed // with a hard operation. This is set if the VM was powered off, // suspended, or restarted. PowerOpResultChangedHard // PowerOpResultChangedSoft indicates the power state was changed // with a soft operation. This is set if the VM was powered off, // suspended, or restarted. PowerOpResultChangedSoft )
func RestartAndWait ¶
func RestartAndWait( ctx context.Context, client *vim25.Client, mo mo.VirtualMachine, fetchProperties bool, desiredLastRestartTime time.Time, powerOpBehavior PowerOpBehavior) (PowerOpResult, error)
RestartAndWait is the same as Restart but blocks until an error occurs or the operation completes successfully.
func SetAndWaitOnPowerState ¶
func SetAndWaitOnPowerState( ctx context.Context, client *vim25.Client, mo mo.VirtualMachine, fetchProperties bool, desiredPowerState vimtypes.VirtualMachinePowerState, powerOpBehavior PowerOpBehavior) (PowerOpResult, error)
SetAndWaitOnPowerState is the same as SetPowerState but blocks until an error occurs or the operation completes successfully.
func (PowerOpResult) AnyChange ¶
func (r PowerOpResult) AnyChange() bool
AnyChange returns true if the result indicates a change, whether that is a power on operation or a hard or soft power off/suspend operation.
type ReconcileMinHardwareVersionResult ¶ added in v1.8.6
type ReconcileMinHardwareVersionResult uint8
func ReconcileMinHardwareVersion ¶ added in v1.8.6
func ReconcileMinHardwareVersion( ctx context.Context, client *vim25.Client, mo mo.VirtualMachine, fetchProperties bool, minHardwareVersion int32) (ReconcileMinHardwareVersionResult, error)