Documentation
¶
Index ¶
- Constants
- Variables
- type CimKvpItem
- type CimKvpItemProperty
- type CimKvpItems
- type ConcreteJob
- type ControllerSettingsBuilder
- func (builder *ControllerSettingsBuilder) AddSyntheticDiskDrive(slot uint) *SyntheticDiskDriveSettingsBuilder
- func (builder *ControllerSettingsBuilder) AddSyntheticDvdDrive(slot uint) *SyntheticDvdDriveSettingsBuilder
- func (builder *ControllerSettingsBuilder) Finish() *DriveSettingsBuilder
- func (builder *ControllerSettingsBuilder) Get(s **ScsiControllerSettings) *ControllerSettingsBuilder
- type DestroySystemResult
- type DriveSettingsBuilder
- type EnabledState
- type EthernetPortAllocationSettings
- type EthernetPortAllocationSettingsBuilder
- type HardwareConfig
- type HyperVConfig
- type KvpError
- type MemorySettings
- type NetworkSettingsBuilder
- type ProcessorSettings
- type ResourceSettings
- type ScsiControllerSettings
- type Statuses
- type StorageAllocationSettings
- type SummaryInformation
- type SummaryRequestSet
- type SyntheticDiskDriveSettings
- type SyntheticDiskDriveSettingsBuilder
- func (builder *SyntheticDiskDriveSettingsBuilder) DefineVirtualHardDisk(vhdxFile string, beforeAdd func(*VirtualHardDiskStorageSettings)) *VirtualHardDiskStorageSettingsBuilder
- func (builder *SyntheticDiskDriveSettingsBuilder) Finish() *ControllerSettingsBuilder
- func (builder *SyntheticDiskDriveSettingsBuilder) Get(s **SyntheticDiskDriveSettings) *SyntheticDiskDriveSettingsBuilder
- type SyntheticDvdDriveSettings
- type SyntheticDvdDriveSettingsBuilder
- func (builder *SyntheticDvdDriveSettingsBuilder) DefineVirtualDvdDisk(imageFile string) *VirtualDvdDiskStorageSettingsBuilder
- func (builder *SyntheticDvdDriveSettingsBuilder) Finish() *ControllerSettingsBuilder
- func (builder *SyntheticDvdDriveSettingsBuilder) Get(s **SyntheticDvdDriveSettings) *SyntheticDvdDriveSettingsBuilder
- type SyntheticEthernetPortSettings
- type SyntheticEthernetPortSettingsBuilder
- func (builder *SyntheticEthernetPortSettingsBuilder) AddEthernetPortAllocation(switchName string) *EthernetPortAllocationSettingsBuilder
- func (builder *SyntheticEthernetPortSettingsBuilder) Finish() *NetworkSettingsBuilder
- func (builder *SyntheticEthernetPortSettingsBuilder) Get(s **SyntheticEthernetPortSettings) *SyntheticEthernetPortSettingsBuilder
- type SystemSettings
- func (s *SystemSettings) AddScsiController() (*ScsiControllerSettings, error)
- func (s *SystemSettings) AddSyntheticEthernetPort(beforeAdd func(*SyntheticEthernetPortSettings)) (*SyntheticEthernetPortSettings, error)
- func (s *SystemSettings) GetVM() (*VirtualMachine, error)
- func (s *SystemSettings) Path() string
- type SystemSettingsBuilder
- func (builder *SystemSettingsBuilder) Build() (*SystemSettings, error)
- func (builder *SystemSettingsBuilder) PrepareMemorySettings(beforeAdd func(*MemorySettings)) *SystemSettingsBuilder
- func (builder *SystemSettingsBuilder) PrepareProcessorSettings(beforeAdd func(*ProcessorSettings)) *SystemSettingsBuilder
- func (builder *SystemSettingsBuilder) PrepareSystemSettings(name string, beforeAdd func(*SystemSettings)) *SystemSettingsBuilder
- type VirtualDvdDiskStorageSettings
- type VirtualDvdDiskStorageSettingsBuilder
- type VirtualHardDiskSettings
- type VirtualHardDiskStorageSettings
- type VirtualHardDiskStorageSettingsBuilder
- type VirtualMachine
- func (vm *VirtualMachine) AddKeyValuePair(key string, value string) error
- func (vm *VirtualMachine) GetConfig(diskPath string) (*HyperVConfig, error)
- func (vm *VirtualMachine) GetKeyValuePairs() (map[string]string, error)
- func (vm *VirtualMachine) GetSummaryInformation(requestedFields SummaryRequestSet) (*SummaryInformation, error)
- func (vm *VirtualMachine) IsStarting() bool
- func (vm *VirtualMachine) ModifyKeyValuePair(key string, value string) error
- func (vm *VirtualMachine) Path() string
- func (vm *VirtualMachine) PutKeyValuePair(key string, value string) error
- func (vm *VirtualMachine) Remove(diskPath string) error
- func (vm *VirtualMachine) RemoveKeyValuePair(key string) error
- func (vm *VirtualMachine) SplitAndAddIgnition(keyPrefix string, ignRdr *bytes.Reader) error
- func (vm *VirtualMachine) Start() error
- func (vm *VirtualMachine) State() EnabledState
- func (vm *VirtualMachine) Stop() error
- func (vm *VirtualMachine) UpdateProcessorMemSettings(updateProcessor func(*ProcessorSettings), updateMemory func(*MemorySettings)) error
- type VirtualMachineManager
- func (*VirtualMachineManager) CreateVhdxFile(path string, maxSize uint64) error
- func (vmm *VirtualMachineManager) Exists(name string) (bool, error)
- func (vmm *VirtualMachineManager) GetAll() ([]*VirtualMachine, error)
- func (*VirtualMachineManager) GetMachine(name string) (*VirtualMachine, error)
- func (vmm *VirtualMachineManager) GetSummaryInformation(requestedFields SummaryRequestSet) ([]SummaryInformation, error)
- func (vmm *VirtualMachineManager) NewVirtualMachine(name string, config *HardwareConfig) error
Constants ¶
const ( ErrShutdownFailed = 32768 ErrShutdownAccessDenied = 32769 ErrShutdownNotSupported = 32770 ErrShutdownStatusUnkown = 32771 ErrShutdownTimeout = 32772 ErrShutdownInvalidParameter = 32773 ErrShutdownSystemInUse = 32774 ErrShutdownInvalidState = 32775 ErrShutdownIncorrectData = 32776 ErrShutdownNotAvailable = 32777 ErrShutdownOutOfMemory = 32778 ErrShutdownFileNotFound = 32779 ErrShutdownNotReady = 32780 ErrShutdownMachineLocked = 32781 ErrShutdownInProgress = 32782 )
Shutdown operation error codes
const ( ErrModifyResourceNotSupported = 1 ErrModifyResourceFailed = 2 ErrModifyResourceTimeout = 3 ErrModifyResourceInvalidParameter = 4 ErrModifyResourceInvalidState = 5 ErrModifyResourceIncompatParam = 6 )
Modify resource errors
const ( KvpOperationFailed = 32768 KvpAccessDenied = 32769 KvpNotSupported = 32770 KvpStatusUnknown = 32771 KvpTimeoutOccurred = 32772 KvpIllegalArgument = 32773 KvpSystemInUse = 32774 KvpInvalidState = 32775 KvpIncorrectDataType = 32776 KvpSystemNotAvailable = 32777 KvpOutOfMemory = 32778 KvpNotFound = 32779 KvpExchangeDataItemName = "Msvm_KvpExchangeDataItem" MemorySettingDataName = "Msvm_MemorySettingData" )
const ( SummaryRequestName = 0 SummaryRequestElementName = 1 SummaryRequestCreationTime = 2 SummaryRequestNotes = 3 SummaryRequestProcessors = 4 SummaryRequestSmallThumbnail = 5 SummaryRequestMediumThumbnail = 6 SummaryRequestLargeThumbnail = 7 SummaryRequestAllocatedGPU = 8 SummaryRequestVirtualSwitchNames = 9 SummaryRequestVersion = 10 SummaryRequestShielded = 11 SummaryRequestEnabledState = 100 SummaryRequestProcessorLoad = 101 SummaryRequestProcessorLoadHistory = 102 SummaryRequestMemoryUsage = 103 SummaryRequestHeartbeat = 104 SummaryRequestUptime = 105 SummaryRequestGuestOperatingSystem = 106 SummaryRequestSnapshots = 107 SummaryRequestAsynchronousTasks = 108 SummaryRequestHealthState = 109 SummaryRequestOperationalStatus = 110 SummaryRequestStatusDescriptions = 111 SummaryRequestMemoryAvailable = 112 SummaryRequestMemoryBuffer = 113 SummaryRequestReplicationMode = 114 SummaryRequestReplicationState = 115 SummaryRequestReplicationHealth = 116 SummaryRequestApplicationHealth = 117 SummaryRequestReplicationStateEx = 118 SummaryRequestReplicationHealthEx = 119 SummaryRequestSwapFilesInUse = 120 SummaryRequestIntegrationServicesVersionState = 121 SummaryRequestReplicationProvider = 122 SummaryRequestMemorySpansPhysicalNumaNodes = 123 SummaryRequestIntegrationServicesVersionState2 = 132 SummaryRequestOtherEnabledState = 132 )
const ( HyperVNamespace = "root\\virtualization\\v2" VirtualSystemManagementService = "Msvm_VirtualSystemManagementService" )
const DefaultSwitchId = "C08CB7B8-9B3C-408E-8E30-5E16A3AEB444"
const EthernetPortAllocationResourceType = "Microsoft:Hyper-V:Ethernet Connection"
const MemoryResourceType = "Microsoft:Hyper-V:Memory"
const ProcessorResourceType = "Microsoft:Hyper-V:Processor"
const SyntheticDiskDriveType = "Microsoft:Hyper-V:Synthetic Disk Drive"
const SyntheticDvdDriveType = "Microsoft:Hyper-V:Synthetic DVD Drive"
const SyntheticEthernetPortResourceType = "Microsoft:Hyper-V:Synthetic Ethernet Port"
const VirtualDvdDiskType = "Microsoft:Hyper-V:Virtual CD/DVD Disk"
const VirtualHardDiskType = "Microsoft:Hyper-V:Virtual Hard Disk"
Variables ¶
var ( ErrMachineAlreadyRunning = errors.New("machine already running") ErrMachineNotRunning = errors.New("machine not running") ErrMachineStateInvalid = errors.New("machine in invalid state for action") ErrMachineStarting = errors.New("machine is currently starting") )
VM State errors
var ( // SummaryRequestCommon includes a smaller subset of commonly used fields SummaryRequestCommon = SummaryRequestSet{ SummaryRequestName, SummaryRequestElementName, SummaryRequestCreationTime, SummaryRequestNotes, SummaryRequestProcessors, SummaryRequestEnabledState, SummaryRequestProcessorLoad, SummaryRequestMemoryUsage, SummaryRequestHeartbeat, SummaryRequestUptime, SummaryRequestGuestOperatingSystem, SummaryRequestHealthState, SummaryRequestOperationalStatus, SummaryRequestStatusDescriptions, SummaryRequestMemoryAvailable, SummaryRequestMemoryBuffer, SummaryRequestSwapFilesInUse, } // SummaryRequestNearAll includes everything but load history and thumbnails SummaryRequestNearAll = SummaryRequestSet{ SummaryRequestName, SummaryRequestElementName, SummaryRequestCreationTime, SummaryRequestNotes, SummaryRequestProcessors, SummaryRequestAllocatedGPU, SummaryRequestVirtualSwitchNames, SummaryRequestVersion, SummaryRequestShielded, SummaryRequestEnabledState, SummaryRequestProcessorLoad, SummaryRequestMemoryUsage, SummaryRequestHeartbeat, SummaryRequestUptime, SummaryRequestGuestOperatingSystem, SummaryRequestSnapshots, SummaryRequestAsynchronousTasks, SummaryRequestHealthState, SummaryRequestOperationalStatus, SummaryRequestStatusDescriptions, SummaryRequestMemoryAvailable, SummaryRequestMemoryBuffer, SummaryRequestReplicationMode, SummaryRequestReplicationState, SummaryRequestReplicationHealth, SummaryRequestApplicationHealth, SummaryRequestReplicationStateEx, SummaryRequestReplicationHealthEx, SummaryRequestSwapFilesInUse, SummaryRequestIntegrationServicesVersionState, SummaryRequestReplicationProvider, SummaryRequestMemorySpansPhysicalNumaNodes, SummaryRequestIntegrationServicesVersionState2, SummaryRequestOtherEnabledState, } )
var (
ErrMachineAlreadyExists = errors.New("machine already exists")
)
VM Creation errors
var (
ErrNotImplemented = errors.New("function not implemented")
)
delete this when close to being done
Functions ¶
This section is empty.
Types ¶
type CimKvpItem ¶
type CimKvpItem struct {
Properties []CimKvpItemProperty `xml:"PROPERTY"`
}
type CimKvpItemProperty ¶
type CimKvpItems ¶
type CimKvpItems struct {
Instances []CimKvpItem `xml:"INSTANCE"`
}
type ConcreteJob ¶
type ConcreteJob struct { InstanceID string Caption string Description string ElementName string InstallDate time.Time Name string OperationalStatus []uint16 // = { 2 } StatusDescriptions []string // = { "OK" } Status string HealthState uint16 // = 5 CommunicationStatus uint16 DetailedStatus uint16 OperatingStatus uint16 PrimaryStatus uint16 JobStatus string TimeSubmitted time.Time ScheduledStartTime time.Time StartTime time.Time ElapsedTime time.Duration JobRunTimes uint32 RunMonth uint8 RunDay int8 RunDayOfWeek int8 RunStartInterval time.Time LocalOrUtcTime uint16 UntilTime time.Time Notify string Owner string Priority uint32 PercentComplete uint16 DeleteOnCompletion bool ErrorCode uint16 ErrorDescription string ErrorSummaryDescription string RecoveryAction uint16 OtherRecoveryAction string JobState uint16 TimeOfLastStateChange time.Time TimeBeforeRemoval time.Duration // = Cancellable bool JobType uint16 }
CIM_ConcreteJob https://learn.microsoft.com/en-us/windows/win32/hyperv_v2/msvm-concretejob
type ControllerSettingsBuilder ¶
type ControllerSettingsBuilder struct {
// contains filtered or unexported fields
}
func (*ControllerSettingsBuilder) AddSyntheticDiskDrive ¶
func (builder *ControllerSettingsBuilder) AddSyntheticDiskDrive(slot uint) *SyntheticDiskDriveSettingsBuilder
func (*ControllerSettingsBuilder) AddSyntheticDvdDrive ¶
func (builder *ControllerSettingsBuilder) AddSyntheticDvdDrive(slot uint) *SyntheticDvdDriveSettingsBuilder
func (*ControllerSettingsBuilder) Finish ¶
func (builder *ControllerSettingsBuilder) Finish() *DriveSettingsBuilder
func (*ControllerSettingsBuilder) Get ¶
func (builder *ControllerSettingsBuilder) Get(s **ScsiControllerSettings) *ControllerSettingsBuilder
type DestroySystemResult ¶
type DestroySystemResult int32
const ( VMDestroyCompletedwithNoError DestroySystemResult = 0 VMDestroyNotSupported DestroySystemResult = 1 VMDestroyFailed DestroySystemResult = 2 VMDestroyTimeout DestroySystemResult = 3 VMDestroyInvalidParameter DestroySystemResult = 4 VMDestroyInvalidState DestroySystemResult = 5 )
VM Destroy Exit Codes
func (DestroySystemResult) Reason ¶
func (e DestroySystemResult) Reason() string
type DriveSettingsBuilder ¶
type DriveSettingsBuilder struct {
// contains filtered or unexported fields
}
func NewDriveSettingsBuilder ¶
func NewDriveSettingsBuilder(systemSettings *SystemSettings) *DriveSettingsBuilder
func (*DriveSettingsBuilder) AddScsiController ¶
func (builder *DriveSettingsBuilder) AddScsiController() *ControllerSettingsBuilder
func (*DriveSettingsBuilder) Complete ¶
func (builder *DriveSettingsBuilder) Complete() error
type EnabledState ¶
type EnabledState uint16
const ( // Unknown The state of the element could not be determined. Unknown EnabledState = 0 // Other No description Other EnabledState = 1 // Enabled The element is running. Enabled EnabledState = 2 // Disabled The element is turned off. Disabled EnabledState = 3 // ShuttingDown Shutting_Down The element is in the process of going to a Disabled state. ShuttingDown EnabledState = 4 // NotApplicable The element does not support being enabled or disabled. NotApplicable EnabledState = 5 // EnabledButOffline The element might be completing commands, and it will drop any new requests. EnabledButOffline EnabledState = 6 // InTest The element is in a test state. InTest EnabledState = 7 // Deferred The element might be completing commands, but it will queue any new requests. Deferred EnabledState = 8 // Quiesce The element is enabled but in a restricted mode. The behavior of the element is similar to the Enabled state //(2), but it processes only a restricted set of commands. All other requests are queued. Quiesce EnabledState = 9 // Starting The element is in the process of going to an Enabled state (2). New requests are queued. Starting EnabledState = 10 )
func (EnabledState) String ¶
func (es EnabledState) String() string
type EthernetPortAllocationSettings ¶
type EthernetPortAllocationSettings struct { InstanceID string // = "Microsoft:GUID\DeviceSpecificData" Caption string // = "Ethernet Switch Port Settings" Description string // = "Ethernet Switch Port Settings" ElementName string ResourceType uint16 // = 33 OtherResourceType string ResourceSubType string PoolID string ConsumerVisibility uint16 // = 3 HostResource []string AllocationUnits string VirtualQuantity uint64 Reservation uint64 Limit uint64 Weight uint32 // = 0 AutomaticAllocation bool AutomaticDeallocation bool Parent string Connection []string Address string MappingBehavior uint16 AddressOnParent string VirtualQuantityUnits string // = "count" DesiredVLANEndpointMode uint16 OtherEndpointMode string EnabledState uint16 LastKnownSwitchName string RequiredFeatures []string RequiredFeatureHints []string TestReplicaPoolID string TestReplicaSwitchName string CompartmentGuid string }
type EthernetPortAllocationSettingsBuilder ¶
type EthernetPortAllocationSettingsBuilder struct {
// contains filtered or unexported fields
}
func (*EthernetPortAllocationSettingsBuilder) Finish ¶
func (builder *EthernetPortAllocationSettingsBuilder) Finish() *SyntheticEthernetPortSettingsBuilder
func (*EthernetPortAllocationSettingsBuilder) Get ¶
func (builder *EthernetPortAllocationSettingsBuilder) Get(s **EthernetPortAllocationSettings) *EthernetPortAllocationSettingsBuilder
type HardwareConfig ¶
type HardwareConfig struct { // CPUs to be assigned to the VM CPUs uint16 // Diskpath is fully qualified location of the // bootable disk image DiskPath string // Disk size in gigabytes assigned to the vm DiskSize uint64 // Memory in megabytes assigned to the vm Memory int32 // Network is bool to add a Network Connection to the // default network switch in Microsoft HyperV Network bool }
type HyperVConfig ¶
type HyperVConfig struct { // Hardware configuration for HyperV Hardware HardwareConfig // state and descriptive info Status Statuses }
HyperVConfig describes physical attributes of the machine
type MemorySettings ¶
type MemorySettings struct { S__PATH string InstanceID string Caption string // = "Memory Default Settings" Description string // = "Describes the default settings for the memory resources." ElementName string ResourceType uint16 // = 4 OtherResourceType string ResourceSubType string // = "Microsoft:Hyper-V:Memory" PoolID string ConsumerVisibility uint16 HostResource []string HugePagesEnabled bool AllocationUnits string // = "byte * 2^20" VirtualQuantity uint64 Reservation uint64 Limit uint64 Weight uint32 AutomaticAllocation bool // = True AutomaticDeallocation bool // = True Parent string Connection []string Address string MappingBehavior uint16 AddressOnParent string VirtualQuantityUnits string // = "byte * 2^20" DynamicMemoryEnabled bool TargetMemoryBuffer uint32 IsVirtualized bool // = True SwapFilesInUse bool MaxMemoryBlocksPerNumaNode uint64 SgxSize uint64 SgxEnabled bool }
type NetworkSettingsBuilder ¶
type NetworkSettingsBuilder struct {
// contains filtered or unexported fields
}
func NewNetworkSettingsBuilder ¶
func NewNetworkSettingsBuilder(systemSettings *SystemSettings) *NetworkSettingsBuilder
func (*NetworkSettingsBuilder) AddSyntheticEthernetPort ¶
func (builder *NetworkSettingsBuilder) AddSyntheticEthernetPort(beforeAdd func(*SyntheticEthernetPortSettings)) *SyntheticEthernetPortSettingsBuilder
func (*NetworkSettingsBuilder) Complete ¶
func (builder *NetworkSettingsBuilder) Complete() error
type ProcessorSettings ¶
type ProcessorSettings struct { S__PATH string InstanceID string Caption string // = "Processor" Description string // = "A logical processor of the hypervisor running on the host computer system." ElementName string ResourceType uint16 // = 3 OtherResourceType string ResourceSubType string // = "Microsoft:Hyper-V:Processor" PoolID string ConsumerVisibility uint16 HostResource []string AllocationUnits string // = "percent / 1000" VirtualQuantity uint64 // = "count" Reservation uint64 // = 0 Limit uint64 // = 100000 Weight uint32 // = 100 AutomaticAllocation bool // = True AutomaticDeallocation bool // = True Parent string Connection []string Address string MappingBehavior uint16 AddressOnParent string VirtualQuantityUnits string // = "count" LimitCPUID bool HwThreadsPerCore uint64 LimitProcessorFeatures bool MaxProcessorsPerNumaNode uint64 MaxNumaNodesPerSocket uint64 EnableHostResourceProtection bool CpuGroupId string HideHypervisorPresent bool ExposeVirtualizationExtensions bool }
type ResourceSettings ¶
type ResourceSettings struct { S__PATH string InstanceID string // = "Microsoft:GUID\DeviceSpecificData" Caption string Description string ElementName string ResourceType uint16 OtherResourceType string ResourceSubType string PoolID string ConsumerVisibility uint16 HostResource []string AllocationUnits string VirtualQuantity uint64 Reservation uint64 Limit uint64 Weight uint32 AutomaticAllocation bool AutomaticDeallocation bool Parent string Connection []string Address string MappingBehavior uint16 AddressOnParent string VirtualQuantityUnits string // = "count" VirtualSystemIdentifiers []string // = { "GUID" } }
func (*ResourceSettings) Path ¶
func (s *ResourceSettings) Path() string
type ScsiControllerSettings ¶
type ScsiControllerSettings struct { ResourceSettings // contains filtered or unexported fields }
func (*ScsiControllerSettings) AddSyntheticDiskDrive ¶
func (c *ScsiControllerSettings) AddSyntheticDiskDrive(slot uint) (*SyntheticDiskDriveSettings, error)
func (*ScsiControllerSettings) AddSyntheticDvdDrive ¶
func (c *ScsiControllerSettings) AddSyntheticDvdDrive(slot uint) (*SyntheticDvdDriveSettings, error)
type StorageAllocationSettings ¶
type StorageAllocationSettings struct { S__PATH string InstanceID string Caption string // = "Hard Disk Image Default Settings" Description string // = "Describes the default settings for the hard disk image resources" ElementName string ResourceType uint16 OtherResourceType string ResourceSubType string PoolID string ConsumerVisibility uint16 HostResource []string AllocationUnits string VirtualQuantity uint64 Limit uint64 // = 1 Weight uint32 StorageQoSPolicyID string AutomaticAllocation bool AutomaticDeallocation bool Parent string Connection []string Address string MappingBehavior uint16 AddressOnParent string VirtualResourceBlockSize uint64 VirtualQuantityUnits string // = "count(fixed size block)" Access uint16 HostResourceBlockSize uint64 Reservation uint64 HostExtentStartingAddress uint64 HostExtentName string HostExtentNameFormat uint16 OtherHostExtentNameFormat string HostExtentNameNamespace uint16 OtherHostExtentNameNamespace string IOPSLimit uint64 IOPSReservation uint64 IOPSAllocationUnits string PersistentReservationsSupported bool CachingMode uint16 SnapshotId string // = "" IgnoreFlushes bool WriteHardeningMethod uint16 }
func (*StorageAllocationSettings) Path ¶
func (s *StorageAllocationSettings) Path() string
type SummaryInformation ¶
type SummaryInformation struct { InstanceID string AllocatedGPU string Shielded bool AsynchronousTasks []ConcreteJob CreationTime time.Time ElementName string EnabledState uint16 OtherEnabledState string GuestOperatingSystem string HealthState uint16 Heartbeat uint16 MemoryUsage uint64 MemoryAvailable int32 AvailableMemoryBuffer int32 SwapFilesInUse bool Name string Notes string Version string NumberOfProcessors uint16 OperationalStatus []uint16 ProcessorLoad uint16 ProcessorLoadHistory []uint16 Snapshots []SystemSettings StatusDescriptions []string ThumbnailImage []uint8 ThumbnailImageHeight uint16 ThumbnailImageWidth uint16 UpTime uint64 ReplicationState uint16 ReplicationStateEx []uint16 ReplicationHealth uint16 ReplicationHealthEx []uint16 ReplicationMode uint16 TestReplicaSystem string // REF to CIM_ComputerSystem ApplicationHealth uint16 IntegrationServicesVersionState uint16 MemorySpansPhysicalNumaNodes bool ReplicationProviderId []string EnhancedSessionModeState uint16 VirtualSwitchNames []string VirtualSystemSubType string HostComputerSystemName string }
SummaryInformation https://learn.microsoft.com/en-us/windows/win32/hyperv_v2/msvm-summaryinformation
type SummaryRequestSet ¶
type SummaryRequestSet []uint
type SyntheticDiskDriveSettings ¶
type SyntheticDiskDriveSettings struct { ResourceSettings // contains filtered or unexported fields }
func (*SyntheticDiskDriveSettings) DefineVirtualHardDisk ¶
func (d *SyntheticDiskDriveSettings) DefineVirtualHardDisk(vhdxFile string, beforeAdd func(*VirtualHardDiskStorageSettings)) (*VirtualHardDiskStorageSettings, error)
type SyntheticDiskDriveSettingsBuilder ¶
type SyntheticDiskDriveSettingsBuilder struct {
// contains filtered or unexported fields
}
func (*SyntheticDiskDriveSettingsBuilder) DefineVirtualHardDisk ¶
func (builder *SyntheticDiskDriveSettingsBuilder) DefineVirtualHardDisk(vhdxFile string, beforeAdd func(*VirtualHardDiskStorageSettings)) *VirtualHardDiskStorageSettingsBuilder
func (*SyntheticDiskDriveSettingsBuilder) Finish ¶
func (builder *SyntheticDiskDriveSettingsBuilder) Finish() *ControllerSettingsBuilder
func (*SyntheticDiskDriveSettingsBuilder) Get ¶
func (builder *SyntheticDiskDriveSettingsBuilder) Get(s **SyntheticDiskDriveSettings) *SyntheticDiskDriveSettingsBuilder
type SyntheticDvdDriveSettings ¶
type SyntheticDvdDriveSettings struct { ResourceSettings // contains filtered or unexported fields }
func (*SyntheticDvdDriveSettings) DefineVirtualDvdDisk ¶
func (d *SyntheticDvdDriveSettings) DefineVirtualDvdDisk(imageFile string) (*VirtualDvdDiskStorageSettings, error)
type SyntheticDvdDriveSettingsBuilder ¶
type SyntheticDvdDriveSettingsBuilder struct {
// contains filtered or unexported fields
}
func (*SyntheticDvdDriveSettingsBuilder) DefineVirtualDvdDisk ¶
func (builder *SyntheticDvdDriveSettingsBuilder) DefineVirtualDvdDisk(imageFile string) *VirtualDvdDiskStorageSettingsBuilder
func (*SyntheticDvdDriveSettingsBuilder) Finish ¶
func (builder *SyntheticDvdDriveSettingsBuilder) Finish() *ControllerSettingsBuilder
func (*SyntheticDvdDriveSettingsBuilder) Get ¶
func (builder *SyntheticDvdDriveSettingsBuilder) Get(s **SyntheticDvdDriveSettings) *SyntheticDvdDriveSettingsBuilder
type SyntheticEthernetPortSettings ¶
type SyntheticEthernetPortSettings struct { S__PATH string InstanceID string Caption string // = "Virtual Ethernet Port Default Settings" Description string // = "Describes the default settings for the virtual Ethernet port resources." ElementName string ResourceType uint16 // = 10 OtherResourceType string ResourceSubType string // = "Microsoft:Hyper-V:Synthetic Ethernet Port" PoolID string ConsumerVisibility uint16 // = 3 HostResource []string AllocationUnits string // = "count" VirtualQuantity uint64 // = 1 Reservation uint64 // = 1 Limit uint64 // = 1 Weight uint32 // = 0 AutomaticAllocation bool // = True AutomaticDeallocation bool // = True Parent string Connection []string Address string MappingBehavior uint16 AddressOnParent string VirtualQuantityUnits string // = "count" DesiredVLANEndpointMode uint16 OtherEndpointMode string VirtualSystemIdentifiers []string DeviceNamingEnabled bool // = FALSE AllowPacketDirect bool // = FALSE StaticMacAddress bool // = False ClusterMonitored bool // = TRUE // contains filtered or unexported fields }
func (*SyntheticEthernetPortSettings) DefineEthernetPortConnection ¶
func (p *SyntheticEthernetPortSettings) DefineEthernetPortConnection(switchName string) (*EthernetPortAllocationSettings, error)
func (*SyntheticEthernetPortSettings) Path ¶
func (p *SyntheticEthernetPortSettings) Path() string
type SyntheticEthernetPortSettingsBuilder ¶
type SyntheticEthernetPortSettingsBuilder struct {
// contains filtered or unexported fields
}
func (*SyntheticEthernetPortSettingsBuilder) AddEthernetPortAllocation ¶
func (builder *SyntheticEthernetPortSettingsBuilder) AddEthernetPortAllocation(switchName string) *EthernetPortAllocationSettingsBuilder
func (*SyntheticEthernetPortSettingsBuilder) Finish ¶
func (builder *SyntheticEthernetPortSettingsBuilder) Finish() *NetworkSettingsBuilder
func (*SyntheticEthernetPortSettingsBuilder) Get ¶
func (builder *SyntheticEthernetPortSettingsBuilder) Get(s **SyntheticEthernetPortSettings) *SyntheticEthernetPortSettingsBuilder
type SystemSettings ¶
type SystemSettings struct { S__PATH string InstanceID string Caption string // = "Virtual Machine Settings" Description string ElementName string VirtualSystemIdentifier string VirtualSystemType string Notes []string CreationTime time.Time ConfigurationID string ConfigurationDataRoot string ConfigurationFile string SnapshotDataRoot string SuspendDataRoot string SwapFileDataRoot string LogDataRoot string AutomaticStartupAction uint16 // non-zero AutomaticStartupActionDelay time.Duration AutomaticStartupActionSequenceNumber uint16 AutomaticShutdownAction uint16 // non-zero AutomaticRecoveryAction uint16 // non-zero RecoveryFile string BIOSGUID string BIOSSerialNumber string BaseBoardSerialNumber string ChassisSerialNumber string Architecture string ChassisAssetTag string BIOSNumLock bool BootOrder []uint16 Parent string UserSnapshotType uint16 // non-zero IsSaved bool AdditionalRecoveryInformation string AllowFullSCSICommandSet bool DebugChannelId uint32 DebugPortEnabled uint16 DebugPort uint32 Version string IncrementalBackupEnabled bool VirtualNumaEnabled bool AllowReducedFcRedundancy bool // = False VirtualSystemSubType string BootSourceOrder []string PauseAfterBootFailure bool NetworkBootPreferredProtocol uint16 // non-zero GuestControlledCacheTypes bool AutomaticSnapshotsEnabled bool IsAutomaticSnapshot bool GuestStateFile string GuestStateDataRoot string LockOnDisconnect bool ParentPackage string AutomaticCriticalErrorActionTimeout time.Duration AutomaticCriticalErrorAction uint16 ConsoleMode uint16 SecureBootEnabled bool SecureBootTemplateId string LowMmioGapSize uint64 HighMmioGapSize uint64 EnhancedSessionTransportType uint16 }
func DefaultSystemSettings ¶
func DefaultSystemSettings() *SystemSettings
func (*SystemSettings) AddScsiController ¶
func (s *SystemSettings) AddScsiController() (*ScsiControllerSettings, error)
func (*SystemSettings) AddSyntheticEthernetPort ¶
func (s *SystemSettings) AddSyntheticEthernetPort(beforeAdd func(*SyntheticEthernetPortSettings)) (*SyntheticEthernetPortSettings, error)
func (*SystemSettings) GetVM ¶
func (s *SystemSettings) GetVM() (*VirtualMachine, error)
func (*SystemSettings) Path ¶
func (s *SystemSettings) Path() string
type SystemSettingsBuilder ¶
type SystemSettingsBuilder struct {
// contains filtered or unexported fields
}
func NewSystemSettingsBuilder ¶
func NewSystemSettingsBuilder() *SystemSettingsBuilder
func (*SystemSettingsBuilder) Build ¶
func (builder *SystemSettingsBuilder) Build() (*SystemSettings, error)
func (*SystemSettingsBuilder) PrepareMemorySettings ¶
func (builder *SystemSettingsBuilder) PrepareMemorySettings(beforeAdd func(*MemorySettings)) *SystemSettingsBuilder
func (*SystemSettingsBuilder) PrepareProcessorSettings ¶
func (builder *SystemSettingsBuilder) PrepareProcessorSettings(beforeAdd func(*ProcessorSettings)) *SystemSettingsBuilder
func (*SystemSettingsBuilder) PrepareSystemSettings ¶
func (builder *SystemSettingsBuilder) PrepareSystemSettings(name string, beforeAdd func(*SystemSettings)) *SystemSettingsBuilder
type VirtualDvdDiskStorageSettings ¶
type VirtualDvdDiskStorageSettings struct { StorageAllocationSettings // contains filtered or unexported fields }
type VirtualDvdDiskStorageSettingsBuilder ¶
type VirtualDvdDiskStorageSettingsBuilder struct {
// contains filtered or unexported fields
}
func (*VirtualDvdDiskStorageSettingsBuilder) Finish ¶
func (builder *VirtualDvdDiskStorageSettingsBuilder) Finish() *SyntheticDvdDriveSettingsBuilder
func (*VirtualDvdDiskStorageSettingsBuilder) Get ¶
func (builder *VirtualDvdDiskStorageSettingsBuilder) Get(s **VirtualDvdDiskStorageSettings) *VirtualDvdDiskStorageSettingsBuilder
type VirtualHardDiskSettings ¶
type VirtualHardDiskSettings struct { S__PATH string InstanceID string Caption string // = "Virtual Hard Disk Setting Data" Description string // = "Setting Data for a Virtual Hard Disk" ElementName string Type uint16 Format uint16 Path string ParentPath string ParentTimestamp time.Time ParentIdentifier string MaxInternalSize uint64 BlockSize uint32 LogicalSectorSize uint32 PhysicalSectorSize uint32 VirtualDiskId string DataAlignment uint64 PmemAddressAbstractionType uint16 IsPmemCompatible bool }
type VirtualHardDiskStorageSettings ¶
type VirtualHardDiskStorageSettings struct { StorageAllocationSettings // contains filtered or unexported fields }
type VirtualHardDiskStorageSettingsBuilder ¶
type VirtualHardDiskStorageSettingsBuilder struct {
// contains filtered or unexported fields
}
func (*VirtualHardDiskStorageSettingsBuilder) Finish ¶
func (builder *VirtualHardDiskStorageSettingsBuilder) Finish() *SyntheticDiskDriveSettingsBuilder
func (*VirtualHardDiskStorageSettingsBuilder) Get ¶
func (builder *VirtualHardDiskStorageSettingsBuilder) Get(s **VirtualHardDiskStorageSettings) *VirtualHardDiskStorageSettingsBuilder
type VirtualMachine ¶
type VirtualMachine struct { S__PATH string `json:"-"` S__CLASS string `json:"-"` InstanceID string Caption string Description string ElementName string InstallDate time.Time OperationalStatus []uint16 StatusDescriptions []string Status string HealthState uint16 CommunicationStatus uint16 DetailedStatus uint16 OperatingStatus uint16 PrimaryStatus uint16 EnabledState uint16 OtherEnabledState string RequestedState uint16 EnabledDefault uint16 TimeOfLastStateChange string AvailableRequestedStates []uint16 TransitioningToState uint16 CreationClassName string Name string PrimaryOwnerName string PrimaryOwnerContact string Roles []string NameFormat string OtherIdentifyingInfo []string IdentifyingDescriptions []string Dedicated []uint16 OtherDedicatedDescriptions []string ResetCapability uint16 PowerManagementCapabilities []uint16 OnTimeInMilliseconds uint64 ProcessID uint32 TimeOfLastConfigurationChange string NumberOfNumaNodes uint16 ReplicationState uint16 ReplicationHealth uint16 ReplicationMode uint16 FailedOverReplicationType uint16 LastReplicationType uint16 LastApplicationConsistentReplicationTime string LastReplicationTime time.Time LastSuccessfulBackupTime string EnhancedSessionModeState uint16 // contains filtered or unexported fields }
func (*VirtualMachine) AddKeyValuePair ¶
func (vm *VirtualMachine) AddKeyValuePair(key string, value string) error
func (*VirtualMachine) GetConfig ¶
func (vm *VirtualMachine) GetConfig(diskPath string) (*HyperVConfig, error)
func (*VirtualMachine) GetKeyValuePairs ¶
func (vm *VirtualMachine) GetKeyValuePairs() (map[string]string, error)
func (*VirtualMachine) GetSummaryInformation ¶
func (vm *VirtualMachine) GetSummaryInformation(requestedFields SummaryRequestSet) (*SummaryInformation, error)
GetSummaryInformation returns the live VM summary information for this virtual machine. The requestedFields parameter controls which fields of summary information are populated. SummaryRequestCommon and SummaryRequestNearAll provide predefined combinations for this parameter
func (*VirtualMachine) IsStarting ¶
func (vm *VirtualMachine) IsStarting() bool
func (*VirtualMachine) ModifyKeyValuePair ¶
func (vm *VirtualMachine) ModifyKeyValuePair(key string, value string) error
func (*VirtualMachine) Path ¶
func (vm *VirtualMachine) Path() string
func (*VirtualMachine) PutKeyValuePair ¶
func (vm *VirtualMachine) PutKeyValuePair(key string, value string) error
func (*VirtualMachine) Remove ¶
func (vm *VirtualMachine) Remove(diskPath string) error
func (*VirtualMachine) RemoveKeyValuePair ¶
func (vm *VirtualMachine) RemoveKeyValuePair(key string) error
func (*VirtualMachine) SplitAndAddIgnition ¶
func (vm *VirtualMachine) SplitAndAddIgnition(keyPrefix string, ignRdr *bytes.Reader) error
func (*VirtualMachine) Start ¶
func (vm *VirtualMachine) Start() error
func (*VirtualMachine) State ¶
func (vm *VirtualMachine) State() EnabledState
func (*VirtualMachine) Stop ¶
func (vm *VirtualMachine) Stop() error
func (*VirtualMachine) UpdateProcessorMemSettings ¶ added in v0.0.2
func (vm *VirtualMachine) UpdateProcessorMemSettings(updateProcessor func(*ProcessorSettings), updateMemory func(*MemorySettings)) error
Update processor and/or mem
type VirtualMachineManager ¶
type VirtualMachineManager struct { }
func NewVirtualMachineManager ¶
func NewVirtualMachineManager() *VirtualMachineManager
func (*VirtualMachineManager) CreateVhdxFile ¶
func (*VirtualMachineManager) CreateVhdxFile(path string, maxSize uint64) error
func (*VirtualMachineManager) Exists ¶
func (vmm *VirtualMachineManager) Exists(name string) (bool, error)
func (*VirtualMachineManager) GetAll ¶
func (vmm *VirtualMachineManager) GetAll() ([]*VirtualMachine, error)
func (*VirtualMachineManager) GetMachine ¶
func (*VirtualMachineManager) GetMachine(name string) (*VirtualMachine, error)
func (*VirtualMachineManager) GetSummaryInformation ¶
func (vmm *VirtualMachineManager) GetSummaryInformation(requestedFields SummaryRequestSet) ([]SummaryInformation, error)
GetSummaryInformation returns the live VM summary information for all virtual machines. The requestedFields parameter controls which fields of summary information are populated. SummaryRequestCommon and SummaryRequestNearAll provide predefined combinations for this parameter.
func (*VirtualMachineManager) NewVirtualMachine ¶
func (vmm *VirtualMachineManager) NewVirtualMachine(name string, config *HardwareConfig) error
NewVirtualMachine creates a new vm in hyperv decided to not return a *VirtualMachine here because of how Podman is likely to use this. this could be easily added if desirable
Source Files
¶
- diskdrive_settings.go
- drive_settings_builder.go
- dvddrive_settings.go
- error.go
- ethernet_alloc_settings.go
- ethernet_port_settings.go
- kvp.go
- memory_settings.go
- network_settings_builder.go
- processor_settings.go
- resources_settings.go
- scsi_controller.go
- storage_alloc_settings.go
- summary.go
- system_settings.go
- system_settings_builder.go
- vdvd_storage_settings.go
- vhd_settings.go
- vhd_storage_settings.go
- vm.go
- vm_config.go
- vmm.go