Documentation ¶
Index ¶
- func ApplyDesiredState(c *libvirt.Connect, uuid string, desiredState hyperAPI.PowerState) error
- func AvailableDisks() ([]string, error)
- func DefineVM(c *libvirt.Connect, vm *hyperAPI.VM) error
- func List(c *libvirt.Connect)
- func NewLocalLibVirtConn() (*libvirt.Connect, error)
- func Snapshot(d *libvirt.Domain) error
- func Stats(c *libvirt.Connect, uuid string) error
- type DomainBackup
- type DomainBackupDisk
- type DomainBackupDiskDriver
- type DomainBackupDiskTarget
- type DomainBackupDiskTargetHost
- type DomainBlkIOTuneDevice
- type DomainBlockIOTune
- type DomainCPU
- type DomainChannel
- type DomainChannelTarget
- type DomainCheckpoint
- type DomainCheckpointDisk
- type DomainClock
- type DomainClockTimer
- type DomainConsole
- type DomainConsoleTarget
- type DomainController
- type DomainControllerMaster
- type DomainControllerModel
- type DomainControllerTarget
- type DomainDesc
- type DomainDeviceAddr
- type DomainDevices
- type DomainDisk
- type DomainDiskBackingStore
- type DomainDiskDriver
- type DomainDiskIOTune
- type DomainDiskReadOnly
- type DomainDiskSource
- type DomainDiskSourceHost
- type DomainDiskTarget
- type DomainFeatureAcpi
- type DomainFeatureApic
- type DomainFeatureVmport
- type DomainFeatures
- type DomainGraphics
- type DomainGraphicsImage
- type DomainGraphicsListen
- type DomainInput
- type DomainInterface
- type DomainInterfaceMac
- type DomainMemory
- type DomainMemoryBalloon
- type DomainMetadata
- type DomainOS
- type DomainOSBoot
- type DomainOSType
- type DomainPM
- type DomainPMSuspendType
- type DomainRNG
- type DomainRNGBackend
- type DomainSerial
- type DomainSerialTarget
- type DomainSerialTargetModel
- type DomainVCPU
- type DomainVideo
- type DomainVideoModel
- type InstanceMetadata
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyDesiredState ¶
ApplyDesiredState takes in the desired state of the VM and attempts to apply the desired state
func NewLocalLibVirtConn ¶
NewLocalLibVirtConn connects to the local libvirt daemon
Types ¶
type DomainBackup ¶
type DomainBackup struct { XMLName xml.Name `xml:"domainbackup"` Mode string `xml:"mode,attr,omitempty"` Disks []DomainBackupDisk `xml:"disks>disk"` Incremental uint64 `xml:"incremental,omitempty"` }
DomainBackup Backup
type DomainBackupDisk ¶
type DomainBackupDisk struct { XMLName xml.Name `xml:"disk"` Name string `xml:"name,attr"` Type string `xml:"type,attr"` Backup string `xml:"backup,attr,omitempty"` ExportName string `xml:"exportname,attr,omitempty"` ExportBitmap string `xml:"exportbitmap,attr,omitempty"` Driver DomainBackupDiskDriver `xml:"driver"` Target DomainBackupDiskTarget `xml:"target"` }
DomainBackupDisk Backup Disk
type DomainBackupDiskDriver ¶
type DomainBackupDiskDriver struct { Name string `xml:"name,attr,omitempty"` Type string `xml:"type,attr"` }
DomainBackupDiskDriver Backup Disk Driver
type DomainBackupDiskTarget ¶
type DomainBackupDiskTarget struct { File string `xml:"file,attr,omitempty"` Protocol string `xml:"protocol,attr,omitempty"` Host *DomainBackupDiskTargetHost `xml:"host,omitempty"` }
DomainBackupDiskTarget Backup Disk Target
type DomainBackupDiskTargetHost ¶
type DomainBackupDiskTargetHost struct { Text string `xml:",chardata"` Name string `xml:"name,attr,omitempty"` Port string `xml:"port,attr,omitempty"` }
DomainBackupDiskTargetHost Backup Disk Target Host
type DomainBlkIOTuneDevice ¶
type DomainBlkIOTuneDevice struct { Path string `xml:"path"` Weight int `xml:"weight,omitempty"` ReadBytesSec uint32 `xml:"read_bytes_sec,omitempty"` WriteBytesSec uint32 `xml:"write_bytes_sec,omitempty"` ReadIOPsSec uint32 `xml:"read_iops_sec,omitempty"` WriteIOPsSec uint32 `xml:"write_iops_sec,omitempty"` }
DomainBlkIOTuneDevice Device level Block IO tuning
type DomainBlockIOTune ¶
type DomainBlockIOTune struct { Weight int `xml:"weight,omitempty"` Devices []DomainBlkIOTuneDevice `xml:"device"` }
DomainBlockIOTune Block IO Tune
type DomainChannel ¶
type DomainChannel struct { Type string `xml:"type,attr"` Target DomainChannelTarget `xml:"target"` Address DomainDeviceAddr `xml:"address"` }
DomainChannel Channel
type DomainChannelTarget ¶
DomainChannelTarget Channel Target
type DomainCheckpoint ¶
type DomainCheckpoint struct { XMLName xml.Name `xml:"domaincheckpoint"` Description string `xml:"description"` Disks []DomainCheckpointDisk `xml:"disks>disk"` }
DomainCheckpoint Checkpoint
type DomainCheckpointDisk ¶
type DomainCheckpointDisk struct { XMLName xml.Name `xml:"disk"` Name string `xml:"name,attr"` Checkpoint string `xml:"checkpoint,attr,omitempty"` Bitmap string `xml:"bitmap,attr,omitempty"` }
DomainCheckpointDisk Checkpoint Disk
type DomainClock ¶
type DomainClock struct { Offset string `xml:"offset,attr"` Timer []DomainClockTimer `xml:"timer"` }
DomainClock Clock
type DomainClockTimer ¶
type DomainClockTimer struct { Name string `xml:"name,attr"` Tickpolicy string `xml:"tickpolicy,attr,omitempty"` Present string `xml:"present,attr,omitempty"` }
DomainClockTimer Clock Timer
type DomainConsole ¶
type DomainConsole struct { Type string `xml:"type,attr"` Target DomainConsoleTarget `xml:"target"` }
DomainConsole Console
type DomainConsoleTarget ¶
DomainConsoleTarget Console Target
type DomainController ¶
type DomainController struct { Type string `xml:"type,attr"` Index string `xml:"index,attr"` ModelAttr string `xml:"model,attr,omitempty"` Master *DomainControllerMaster `xml:"master,omitempty"` Model *DomainControllerModel `xml:"model,omitempty"` Target *DomainControllerTarget `xml:"target,omitempty"` Address *DomainDeviceAddr `xml:"address"` }
DomainController Controller
type DomainControllerMaster ¶
type DomainControllerMaster struct {
Startport string `xml:"startport,attr,omitempty"`
}
DomainControllerMaster Controller Master
type DomainControllerModel ¶
type DomainControllerModel struct {
Name string `xml:"name,attr,omitempty"`
}
DomainControllerModel Controller Model
type DomainControllerTarget ¶
type DomainControllerTarget struct { Chassis string `xml:"chassis,attr,omitempty"` Port string `xml:"port,attr,omitempty"` }
DomainControllerTarget Controller Target
type DomainDesc ¶
type DomainDesc struct { XMLName xml.Name `xml:"domain"` Type string `xml:"type,attr"` Name string `xml:"name"` UUID string `xml:"uuid,omtiempty"` Metadata DomainMetadata `xml:"metadata"` OnPoweroff string `xml:"on_poweroff"` OnReboot string `xml:"on_reboot"` OnCrash string `xml:"on_crash"` OS DomainOS `xml:"os"` Features DomainFeatures `xml:"features"` Memory DomainMemory `xml:"memory"` CurrentMemory *DomainMemory `xml:"currentMemory,omitempty"` VCPU DomainVCPU `xml:"vcpu"` CPU DomainCPU `xml:"cpu"` Clock DomainClock `xml:"clock"` Blkiotune *DomainBlockIOTune `xml:"blkiotune,omitempty"` PowerManagement DomainPM `xml:"pm"` Devices DomainDevices `xml:"devices"` }
DomainDesc main domain description
func GetTemplate ¶
func GetTemplate(vm *hyperAPI.VM) (*DomainDesc, error)
GetTemplate converts the VM desc template to a DomainDesc struct
type DomainDeviceAddr ¶
type DomainDeviceAddr struct { Type string `xml:"type,attr,omitempty"` Domain string `xml:"domain,attr,omitempty"` Bus string `xml:"bus,attr,omitempty"` Slot string `xml:"slot,attr,omitempty"` Function string `xml:"function,attr,omitempty"` }
DomainDeviceAddr Device Addr
type DomainDevices ¶
type DomainDevices struct { Emulator string `xml:"emulator"` Disks []DomainDisk `xml:"disk"` Console []DomainConsole `xml:"console"` Serial []DomainSerial `xml:"serial"` Controllers []DomainController `xml:"controller"` Channel []DomainChannel `xml:"channel"` Input []DomainInput `xml:"input,omitempty"` Graphics []DomainGraphics `xml:"graphics,omitempty"` Video []DomainVideo `xml:"video,omitempty"` Rng []DomainRNG `xml:"rng"` MemBalloon DomainMemoryBalloon `xml:"memballoon"` }
DomainDevices Devices
type DomainDisk ¶
type DomainDisk struct { XMLName xml.Name `xml:"disk"` Type string `xml:"type,attr"` Device string `xml:"device,attr"` ReadOnly *DomainDiskReadOnly `xml:"readonly"` IOTune *DomainDiskIOTune `xml:"iotune"` Driver DomainDiskDriver `xml:"driver"` Source DomainDiskSource `xml:"source"` BackingStore *DomainDiskBackingStore `xml:"backingStore,omitempty"` Target DomainDiskTarget `xml:"target"` Address DomainDeviceAddr `xml:"address"` }
DomainDisk Disk
type DomainDiskBackingStore ¶
type DomainDiskBackingStore struct { }
DomainDiskBackingStore Disk Backing Store
type DomainDiskDriver ¶
DomainDiskDriver Disk Driver
type DomainDiskIOTune ¶
type DomainDiskIOTune struct { TotalBytesSec uint64 `xml:"total_bytes_sec,omitempty"` ReadBytesSec uint64 `xml:"read_bytes_sec,omitempty"` WriteBytesSec uint64 `xml:"write_bytes_sec,omitempty"` TotalIopsSec uint64 `xml:"total_iops_sec,omitempty"` ReadIopsSec uint64 `xml:"read_iops_sec,omitempty"` WriteIopsSec uint64 `xml:"write_iops_sec,omitempty"` TotalBytesSecMax uint64 `xml:"total_bytes_sec_max,omitempty"` ReadBytesSecMax uint64 `xml:"read_bytes_sec_max,omitempty"` WriteBytesSecMax uint64 `xml:"write_bytes_sec_max,omitempty"` TotalIopsSecMax uint64 `xml:"total_iops_sec_max,omitempty"` ReadIopsSecMax uint64 `xml:"read_iops_sec_max,omitempty"` WriteIopsSecMax uint64 `xml:"write_iops_sec_max,omitempty"` SizeIopsSec uint64 `xml:"size_iops_sec,omitempty"` GroupName uint64 `xml:"group_name,omitempty"` TotalBytesSecMaxLength uint64 `xml:"total_bytes_sec_max_length,omitempty"` ReadBytesSecMaxLength uint64 `xml:"read_bytes_sec_max_length,omitempty"` WriteBytesSecMaxLength uint64 `xml:"write_bytes_sec_max_length,omitempty"` TotalIopsSecMaxLength uint64 `xml:"total_iops_sec_max_length,omitempty"` ReadIopsSecMaxLength uint64 `xml:"read_iops_sec_max_length,omitempty"` WriteIopsSecMaxLength uint64 `xml:"write_iops_sec_max_length,omitempty"` }
DomainDiskIOTune Disk IO Tune
type DomainDiskReadOnly ¶
DomainDiskReadOnly Disk Read Only
type DomainDiskSource ¶
type DomainDiskSource struct { Name string `xml:"name,attr,omitempty"` File string `xml:"file,attr,omitempty"` StartupPolicy string `xml:"startupPolicy,attr,omitempty"` Protocol string `xml:"protocol,attr,omitempty"` Host *DomainDiskSourceHost `xml:"host,omitempty"` }
DomainDiskSource Disk Source
type DomainDiskSourceHost ¶
type DomainDiskSourceHost struct { Text string `xml:",chardata"` Name string `xml:"name,attr,omitempty"` Port string `xml:"port,attr,omitempty"` }
DomainDiskSourceHost Disk Source Host
type DomainDiskTarget ¶
DomainDiskTarget Disk Target
type DomainFeatureVmport ¶
type DomainFeatureVmport struct {
State string `xml:"state,attr"`
}
DomainFeatureVmport VMWare IO port support
type DomainFeatures ¶
type DomainFeatures struct { Acpi *DomainFeatureAcpi `xml:"acpi"` Apic *DomainFeatureApic `xml:"apic"` Vmport DomainFeatureVmport `xml:"vmport"` }
DomainFeatures Hypervisor Features
type DomainGraphics ¶
type DomainGraphics struct { Type string `xml:"type,attr"` Autoport string `xml:"autoport,attr"` Listen DomainGraphicsListen `xml:"listen"` Image DomainGraphicsImage `xml:"image"` }
DomainGraphics Graphics
type DomainGraphicsImage ¶
type DomainGraphicsImage struct { Text string `xml:",chardata"` Compression string `xml:"compression,attr"` }
DomainGraphicsImage Graphics Image
type DomainGraphicsListen ¶
DomainGraphicsListen Graphics Listen
type DomainInput ¶
type DomainInput struct { Type string `xml:"type,attr"` Bus string `xml:"bus,attr"` Address *DomainDeviceAddr `xml:"address"` }
DomainInput Input
type DomainInterface ¶
type DomainInterface struct { Type string `xml:"type,attr"` Mac DomainInterfaceMac `xml:"mac"` Address DomainDeviceAddr `xml:"address"` }
DomainInterface Interface
type DomainInterfaceMac ¶
type DomainInterfaceMac struct {
Address net.HardwareAddr `xml:"address,attr"`
}
DomainInterfaceMac Interface Mac
type DomainMemory ¶
DomainMemory Memory
type DomainMemoryBalloon ¶
type DomainMemoryBalloon struct { Model string `xml:"model,attr"` Address DomainDeviceAddr `xml:"address"` }
DomainMemoryBalloon Memory Balloon
type DomainMetadata ¶
type DomainMetadata struct {
Text string `xml:",innerxml"`
}
DomainMetadata main domain metadata
type DomainOS ¶
type DomainOS struct { Type DomainOSType `xml:"type"` Boot DomainOSBoot `xml:"boot"` }
DomainOS OS
type DomainOSBoot ¶
type DomainOSBoot struct {
Dev string `xml:"dev,attr"`
}
DomainOSBoot OS Boot Device
type DomainOSType ¶
type DomainOSType struct { Type string `xml:",chardata"` Arch string `xml:"arch,attr"` Machine string `xml:"machine,attr"` }
DomainOSType OS Type
type DomainPM ¶
type DomainPM struct { SuspendToMem DomainPMSuspendType `xml:"suspend-to-mem"` SuspendToDisk DomainPMSuspendType `xml:"suspend-to-disk"` }
DomainPM Power Management
type DomainPMSuspendType ¶
type DomainPMSuspendType struct {
Enabled string `xml:"enabled,attr"`
}
DomainPMSuspendType PM Suspend Type
type DomainRNG ¶
type DomainRNG struct { Model string `xml:"model,attr"` Backend DomainRNGBackend `xml:"backend"` Address DomainDeviceAddr `xml:"address"` }
DomainRNG RNG (Random Number Generator)
type DomainRNGBackend ¶
DomainRNGBackend RNG Backend
type DomainSerial ¶
type DomainSerial struct { Type string `xml:"type,attr"` Target DomainSerialTarget `xml:"target"` }
DomainSerial Serial
type DomainSerialTarget ¶
type DomainSerialTarget struct { Type string `xml:"type,attr"` Port int `xml:"port,attr"` Model DomainSerialTargetModel `xml:"model"` }
DomainSerialTarget Serial Target
type DomainSerialTargetModel ¶
type DomainSerialTargetModel struct {
Name string `xml:"name,attr"`
}
DomainSerialTargetModel Serial Target Model
type DomainVCPU ¶
type DomainVCPU struct { Count uint16 `xml:",chardata"` Placement string `xml:"placement,attr,omitempty"` CPUSet string `xml:"cpuset,attr,omitempty"` }
DomainVCPU VCPU
type DomainVideo ¶
type DomainVideo struct { Model DomainVideoModel `xml:"model"` Address DomainDeviceAddr `xml:"address"` }
DomainVideo Video
type DomainVideoModel ¶
type DomainVideoModel struct { Text string `xml:",chardata"` Type string `xml:"type,attr"` RAM string `xml:"ram,attr"` VRAM string `xml:"vram,attr"` Vgamem string `xml:"vgamem,attr"` Heads string `xml:"heads,attr"` Primary string `xml:"primary,attr"` }
DomainVideoModel Video Model
type InstanceMetadata ¶
type InstanceMetadata struct { InstanceID string `json:"instance-id"` CloudName string `json:"cloud-name"` }
InstanceMetadata basic instance info