Class Domain
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
TODO: get generated constants from libvirtstatic final class
static final class
static final class
static final class
static final class
static final class
static final class
static final class
Contains multiple constants that defines "virDomainMigrate* params" multiple field.static final class
static final class
static final class
static final class
static final class
static final class
static final class
static final class
static final class
static final class
static final class
-
Method Summary
Modifier and TypeMethodDescriptionint
abortJob()
Requests that the current background job be aborted at the soonest opportunity.void
Adds the specified listener to receive agent lifecycle events for this domain.void
Adds a callback to receive notifications of Block Job eventsvoid
Adds a callback to receive notifications of IOError domain events occurring on this domain.void
Adds the specified listener to receive lifecycle events for this domain.void
Adds the specified listener to receive PMSuspend events for this domain.void
Adds the specified listener to receive PMWakeup events for this domain.void
Adds the specified listener to receive reboot events for this domain.void
attachDevice
(String xmlDesc) Creates a virtual device attachment to backend.void
attachDeviceFlags
(String xmlDesc, int flags) Creates a virtual device attachment to backend.void
blockCommit
(String disk, String base, String top, long bandwidth, int flags) Commit changes that were made to temporary top-level files within a disk image backing file chain into a lower-level base file.void
blockCopy
(String diskPath, String xmlDesc, TypedParameter[] params, int flags) This function migrates domain's live block device (disk) to another block device.This function returns block device (disk) stats for block devices attached to the domain.void
blockJobAbort
(String disk, int flags) Cancel the active block job on the given disk.void
blockPeek
(String disk, long offset, ByteBuffer buffer) Read the contents of a domain's disk device.void
blockResize
(String disk, long size, int flags) Resize a block device of domain while the domain is running.blockStats
(String path) Returns block device (disk) stats for block devices attached to this domain.void
Dumps the core of this domain on a given file for analysis.int
cpuMapLength
(int maxCpus) It returns the length (in bytes) required to store the complete CPU map between a single virtual & all physical CPUs of a domain.int
create()
Launches this defined domain.int
create
(int flags) Launches this defined domain with the provide flags.void
destroy()
Destroys this domain object.void
detachDevice
(String xmlDesc) Destroys a virtual device attachment to backend.void
detachDeviceFlags
(String xmlDesc, int flags) Destroys a virtual device attachment to backend.boolean
protected void
finalize()
int
free()
Frees this domain object.boolean
Provides a boolean value indicating whether the domain is configured to be automatically started when the host machine boots.getBlockJobInfo
(String disk, int flags) Request block job information for the given disk.Provides the connection object associated with a domain.int
getID()
Gets the hypervisor ID number for the domaingetInfo()
Extract information about a domain.Extract information about progress of a background job on a domain.long
Retrieve the maximum amount of physical memory allocated to a domain.int
Provides the maximum number of virtual CPUs supported for the guest VM.getMetadata
(int type, String uri, int flags) Retrieves the appropriate domain element given by type.getName()
Gets the public name for this domainGets the type of domain operation system.Gets the scheduler parameters.Gets the scheduler type.Get the security label of an active domain.int[]
getUUID()
Get the UUID for this domain.Gets the UUID for this domain as string.int[]
Returns the cpumaps for this domain Only the lower 8 bits of each int in the array contain information.VcpuInfo[]
Extracts information about virtual CPUs of this domaingetXMLDesc
(int flags) Provides an XML description of the domain.int
Determine if the domain has a snapshotint
hashCode()
int
Determine if the domain has a managed save imageinterfaceAddresses
(int source, int flags) Retrieves a list of the network interfaces present in given domain along with their IP and MAC addresses.interfaceStats
(String path) Returns network interface stats for interfaces attached to this domain.int
isActive()
Determine if the domain is currently runningint
Determine if the domain has a persistent configuration which means it will still exist after shutting downboolean
Returnstrue
if, and only if, this domain has been updated.int
suspend a domain and save its memory contents to a file on disk.int
Remove any managed save images from the domainvoid
memoryPeek
(long start, ByteBuffer buffer, MemoryAddressMode mode) Read the contents of a domain's memory.memoryStats
(int number) This function provides memory statistics for the domain.Migrate this domain object from its current host to the destination host given by dconn (a connection to the destination host).Migrate this domain object from its current host to the destination host given by dconn (a connection to the destination host).migrate
(Connect dconn, TypedParameter[] params, long flags) Migrate the domain object from its current host to the destination host given by dconn (a connection to the destination host).int
migrateSetMaxDowntime
(long downtime) Sets maximum tolerable time for which the domain is allowed to be paused at the end of live migration.int
migrateToURI
(String uri, long flags, String dname, long bandwidth) Migrate the domain object from its current host to the destination host given by duri.int
migrateToURI
(String dconnuri, String miguri, String dxml, long flags, String dname, long bandwidth) Migrate the domain object from its current host to the destination denoted by a given URI.void
pinVcpu
(int vcpu, int[] cpumap) Dynamically changes the real CPUs which can be allocated to a virtual CPU.void
PMsuspend
(SuspendTarget target) Enter the given power management suspension target level.void
PMsuspendFor
(SuspendTarget target, long duration, TimeUnit unit) Enter the given power management suspension target level for the given duration.void
PMwakeup()
Immediately wake up a guest using power management.qemuAgentCommand
(String cmd, int timeout, int flags) Commands for Qemu Guest Agent helper daemonqemuMonitorCommand
(String cmd, int flags) Qemu Monitor Command - it will only work with hypervisor connections to the QEMU driver.void
reboot
(int flags) Reboot this domain, the domain object is still usable there after but the domain OS is being stopped for a restart.void
Removes BlockJobListener from the event framework, so it no longer receives eventsvoid
reset()
Reset a domain immediately without any guest OS shutdown.void
resume()
Resume this suspended domain, the process is restarted from the state where it was frozen by calling virSuspendDomain().int
revertToSnapshot
(DomainSnapshot snapshot) Revert the domain to a given snapshot.void
Suspends this domain and saves its memory contents to a file on disk.screenshot
(Stream stream, int screen) void
sendKey
(KeycodeSet codeset, int holdtime, int... keys) Send key(s) to the guest.void
setAutostart
(boolean autostart) Configures the network to be automatically started when the host machine boots.void
setMaxMemory
(long memory) * Dynamically change the maximum amount of physical memory allocated to a domain.void
setMemory
(long memory) Dynamically changes the target amount of physical memory allocated to this domain.void
setMetadata
(int type, String metadata, String key, String uri, int flags) Sets the appropriate domain element given by type to the value of metadata.void
setSchedulerParameters
(SchedParameter[] params) Changes the scheduler parametersvoid
setUserPassword
(String user, String password, int flags) Sets the user password to the value specified by password.void
setVcpus
(int nvcpus) Dynamically changes the number of virtual CPUs used by this domain.void
setVcpusFlags
(int nvcpus, int flags) Dynamically changes the number of virtual CPUs used by this domain.void
shutdown()
Shuts down this domain, the domain object is still usable there after but the domain OS is being stopped.snapshotCreateXML
(String xmlDesc) Creates a new snapshot of a domain based on the snapshot xml contained in xmlDesc.snapshotCreateXML
(String xmlDesc, int flags) Creates a new snapshot of a domain based on the snapshot xml contained in xmlDesc.Get the current snapshot for a domain, if any.String[]
Collect the list of domain snapshots for the given domain.String[]
snapshotListNames
(int flags) Collect the list of domain snapshots for the given domain.snapshotLookupByName
(String name) Retrieve a snapshot by nameint
Provides the number of domain snapshots for this domain..void
suspend()
Suspends this active domain, the process is frozen without further access to CPU resources and I/O but the memory used by the domain at the hypervisor level will stay allocated.void
undefine()
undefines this domain but does not stop it if it is runningvoid
undefine
(int flags) Undefines this domain but does not stop if it it is running.int
updateDeviceFlags
(String xml, int flags) Change a virtual device on a domain
-
Method Details
-
hashCode
public int hashCode() -
equals
-
abortJob
Requests that the current background job be aborted at the soonest opportunity. This will block until the job has either completed, or aborted.- Returns:
- ignore (always 0)
- Throws:
LibvirtException
- See Also:
-
attachDevice
Creates a virtual device attachment to backend.- Parameters:
xmlDesc
- XML description of one device- Throws:
LibvirtException
- See Also:
-
attachDeviceFlags
Creates a virtual device attachment to backend.- Parameters:
xmlDesc
- XML description of one deviceflags
- the an OR'ed set ofDomain.DeviceModifyFlags
- Throws:
LibvirtException
- See Also:
-
blockCopy
public void blockCopy(String diskPath, String xmlDesc, TypedParameter[] params, int flags) throws LibvirtException This function migrates domain's live block device (disk) to another block device.- Parameters:
diskPath
- Path to current diskxmlDesc
- XML description of destination diskparams
- Hypervisor-specific tuning parametersflags
- Bitwise OR'ed values ofDomain.BlockCopyFlags
- Throws:
LibvirtException
- See Also:
-
blockInfo
This function returns block device (disk) stats for block devices attached to the domain.- Parameters:
path
- the path to the block device- Returns:
- the info
- Throws:
LibvirtException
-
blockPeek
Read the contents of a domain's disk device.Typical uses for this are to determine if the domain has written a Master Boot Record (indicating that the domain has completed installation), or to try to work out the state of the domain's filesystems.
(Note that in the local case you might try to open the block device or file directly, but that won't work in the remote case, nor if you don't have sufficient permission. Hence the need for this call).
The disk parameter can either be an unambiguous source name of the block device (the
<source file='...'/>
sub-element, such as "/path/to/image"), or (since 0.9.5) the device target shorthand (the<target dev='...'/>
sub-element, such as "xvda").Valid names can be found by calling
getXMLDesc(int)
and inspecting elements within//domain/devices/disk
.This method always reads the number of bytes remaining in the buffer, that is,
buffer.remaining()
at the moment this method is invoked. Upon return the buffer's position will be equal to the limit, the limit itself will not have changed.- Parameters:
disk
- the path to the block device, or device shorthandoffset
- the offset within block devicebuffer
- the buffer receiving the data- Throws:
LibvirtException
-
blockStats
Returns block device (disk) stats for block devices attached to this domain. The path parameter is the name of the block device. Get this by calling virDomainGetXMLDesc and finding the<target dev='...'>
attribute within //domain/devices/disk. (For example, "xvda"). Domains may have more than one block device. To get stats for each you should make multiple calls to this function. Individual fields within the DomainBlockStats object may be returned as -1, which indicates that the hypervisor does not support that particular statistic.- Parameters:
path
- path to the block device- Returns:
- the statistics in a DomainBlockStats object
- Throws:
LibvirtException
-
blockResize
Resize a block device of domain while the domain is running.- Parameters:
disk
- path to the block image, or shorthand (like vda)size
- the new size of the block devicesflags
- bitwise OR'ed values ofDomain.BlockResizeFlags
- Throws:
LibvirtException
-
blockCommit
public void blockCommit(String disk, String base, String top, long bandwidth, int flags) throws LibvirtException Commit changes that were made to temporary top-level files within a disk image backing file chain into a lower-level base file.- Parameters:
disk
- path to the block device, or device shorthandbase
- path to backing file to merge into, or device shorthand, or NULL for defaulttop
- path to file within backing chain that contains data to be merged, or device shorthand, or NULL to merge all possible databandwidth
- (optional) specify bandwidth limit; flags determine the unitflags
- bitwise-OR ofDomain.BlockCommitFlags
- Throws:
LibvirtException
- See Also:
-
getBlockJobInfo
Request block job information for the given disk.- Parameters:
disk
- path to the block device, or device shorthandflags
- seeDomain.BlockJobInfoFlags
- Returns:
- the statistics in a BlockJobInfo object
- Throws:
LibvirtException
- See Also:
-
blockJobAbort
Cancel the active block job on the given disk.- Parameters:
disk
- path to the block device, or device shorthandflags
- seeDomain.BlockJobAbortFlags
- Throws:
LibvirtException
- See Also:
-
coreDump
Dumps the core of this domain on a given file for analysis. Note that for remote Xen Daemon the file path will be interpreted in the remote host.- Parameters:
to
- path for the core fileflags
- extra flags, currently unused- Throws:
LibvirtException
-
cpuMapLength
public int cpuMapLength(int maxCpus) It returns the length (in bytes) required to store the complete CPU map between a single virtual & all physical CPUs of a domain. -
create
Launches this defined domain. If the call succeed the domain moves from the defined to the running domains pools.- Returns:
- ignore (always 0)
- Throws:
LibvirtException
-
create
Launches this defined domain with the provide flags. If the call succeed the domain moves from the defined to the running domains pools.- Returns:
- ignore (always 0)
- Throws:
LibvirtException
-
destroy
Destroys this domain object. The running instance is shutdown if not down already and all resources used by it are given back to the hypervisor. The data structure is freed and should not be used thereafter if the call does not return an error. This function may requires priviledged access- Throws:
LibvirtException
-
detachDevice
Destroys a virtual device attachment to backend.- Parameters:
xmlDesc
- XML description of one device- Throws:
LibvirtException
- See Also:
-
detachDeviceFlags
Destroys a virtual device attachment to backend.- Parameters:
xmlDesc
- XML description of one device- Throws:
LibvirtException
- See Also:
-
finalize
- Overrides:
finalize
in classObject
- Throws:
LibvirtException
-
free
Frees this domain object. The running instance is kept alive. The data structure is freed and should not be used thereafter.- Returns:
- number of references left (>= 0)
- Throws:
LibvirtException
-
getAutostart
Provides a boolean value indicating whether the domain is configured to be automatically started when the host machine boots.- Returns:
- the result
- Throws:
LibvirtException
-
getConnect
Provides the connection object associated with a domain.- Returns:
- the Connect object
-
getID
Gets the hypervisor ID number for the domain- Returns:
- the hypervisor ID
- Throws:
LibvirtException
-
getInfo
Extract information about a domain. Note that if the connection used to get the domain is limited only a partial set of the information can be extracted.- Returns:
- a DomainInfo object describing this domain
- Throws:
LibvirtException
- See Also:
-
getJobInfo
Extract information about progress of a background job on a domain. Will return an error if the domain is not active.- Returns:
- a DomainJobInfo object describing this domain
- Throws:
LibvirtException
- See Also:
-
getMaxMemory
Retrieve the maximum amount of physical memory allocated to a domain.- Returns:
- the memory in kilobytes
- Throws:
LibvirtException
-
getMaxVcpus
Provides the maximum number of virtual CPUs supported for the guest VM. If the guest is inactive, this is basically the same as virConnectGetMaxVcpus. If the guest is running this will reflect the maximum number of virtual CPUs the guest was booted with.- Returns:
- the number of VCPUs
- Throws:
LibvirtException
-
getMetadata
Retrieves the appropriate domain element given by type.- Parameters:
type
- type of metadata, seeDomain.MetadataType
uri
- XML namespace identifier if type == MetadataType.ELEMENT, null otherwiseflags
- bitwise-OR ofDomain.ModificationImpact
- Returns:
- the metadata string
- Throws:
LibvirtException
-
getName
Gets the public name for this domain- Returns:
- the name, null if there is no name
- Throws:
LibvirtException
- never
-
getOSType
Gets the type of domain operation system.- Returns:
- the type
- Throws:
LibvirtException
-
getSchedulerParameters
Gets the scheduler parameters.- Returns:
- an array of SchedParameter objects
- Throws:
LibvirtException
-
getSchedulerType
Gets the scheduler type.- Returns:
- the type of the scheduler
- Throws:
LibvirtException
-
getSecurityLabel
Get the security label of an active domain.- Returns:
- the SecurityLabel or
null
if the domain is not running under a security model - Throws:
LibvirtException
-
getUUID
Get the UUID for this domain.- Returns:
- the UUID as an unpacked int array
- Throws:
LibvirtException
- See Also:
-
getUUIDString
Gets the UUID for this domain as string.- Returns:
- the UUID in canonical String format
- Throws:
LibvirtException
- See Also:
-
getVcpusCpuMaps
Returns the cpumaps for this domain Only the lower 8 bits of each int in the array contain information.- Returns:
- a bitmap of real CPUs for all vcpus of this domain
- Throws:
LibvirtException
-
getVcpusInfo
Extracts information about virtual CPUs of this domain- Returns:
- an array of VcpuInfo object describing the VCPUs
- Throws:
LibvirtException
-
getXMLDesc
Provides an XML description of the domain. The description may be reused later to relaunch the domain with createLinux().- Parameters:
flags
- bitwise-OR ofDomain.XMLFlags
- Returns:
- the XML description String
- Throws:
LibvirtException
- See Also:
-
hasCurrentSnapshot
Determine if the domain has a snapshot- Returns:
- 1 if running, 0 if inactive
- Throws:
LibvirtException
- See Also:
-
hasManagedSaveImage
Determine if the domain has a managed save image- Returns:
- 0 if no image is present, 1 if an image is present, and -1 in case of error
- Throws:
LibvirtException
- See Also:
-
interfaceAddresses
public Collection<DomainInterface> interfaceAddresses(int source, int flags) throws LibvirtException Retrieves a list of the network interfaces present in given domain along with their IP and MAC addresses. Note that single interface can have multiple or even 0 IP addresses. If source is VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE, the DHCP lease file associated with any virtual networks will be examined to obtain the interface addresses. This only returns data for interfaces which are connected to virtual networks managed by libvirt. If source is VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT, a configured guest agent is needed for successful return from this API. Moreover, if guest agent is used then the interface name is the one seen by guest OS. To match such interface with the one from dom XML use MAC address or IP range. If source is VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP, the host ARP table will be check to obtain the interface addresses. As the arp cache refreshes in time, the returned ip address may be unreachable. Depending on the route table config of the guest, the returned mac address may be duplicated. Note that for some source values some pieces of returned ifaces might be unset (e.g. VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP does not set IP address prefix as ARP table does not have any notion of that). name and hwaddr of the returned interfaces are never NULL.- Parameters:
source
- one of theDomain.InterfaceAddressesSource
constantsflags
- currently unused, pass zero- Returns:
- the interfaces of this domain
- Throws:
LibvirtException
- if something goes wrong
-
interfaceStats
Returns network interface stats for interfaces attached to this domain. The path parameter is the name of the network interface. Domains may have more than network interface. To get stats for each you should make multiple calls to this function. Individual fields within the DomainInterfaceStats object may be returned as -1, which indicates that the hypervisor does not support that particular statistic.- Parameters:
path
- path to the interface- Returns:
- the statistics in a DomainInterfaceStats object
- Throws:
LibvirtException
-
isActive
Determine if the domain is currently running- Returns:
- 1 if running, 0 if inactive
- Throws:
LibvirtException
- See Also:
-
isPersistent
Determine if the domain has a persistent configuration which means it will still exist after shutting down- Returns:
- 1 if persistent, 0 if transient
- Throws:
LibvirtException
- See Also:
-
isUpdated
Returnstrue
if, and only if, this domain has been updated.- Throws:
LibvirtException
-
managedSave
suspend a domain and save its memory contents to a file on disk.- Returns:
- always 0
- Throws:
LibvirtException
- See Also:
-
managedSaveRemove
Remove any managed save images from the domain- Returns:
- always 0
- Throws:
LibvirtException
- See Also:
-
memoryPeek
public void memoryPeek(long start, ByteBuffer buffer, MemoryAddressMode mode) throws LibvirtException Read the contents of a domain's memory.If mode is MemoryAddressMode.VIRTUAL the 'start' parameter is interpreted as virtual memory address for whichever task happens to be running on the domain at the moment. Although this sounds haphazard it is in fact what you want in order to read Linux kernel state, because it ensures that pointers in the kernel image can be interpreted coherently.
This method always reads the number of bytes remaining in the buffer, that is,
buffer.remaining()
at the moment this method is invoked. Upon return the buffer's position will be equal to the limit, the limit itself will not have changed.- Parameters:
start
- the start address of the memory to peekmode
- the mode which determines whether the given addresses are interpreted as virtual or physical addresses- Throws:
LibvirtException
-
memoryStats
This function provides memory statistics for the domain.- Parameters:
number
- the number of stats to retrieve- Returns:
- the collection of stats
- Throws:
LibvirtException
-
migrate
public Domain migrate(Connect dconn, long flags, String dxml, String dname, String uri, long bandwidth) throws LibvirtException Migrate this domain object from its current host to the destination host given by dconn (a connection to the destination host).Flags may be bitwise OR'ed values of
MigrateFlags
.If a hypervisor supports renaming domains during migration, then you may set the dname parameter to the new name (otherwise it keeps the same name).
If this is not supported by the hypervisor, dname must be
null
or else you will get an exception.Since typically the two hypervisors connect directly to each other in order to perform the migration, you may need to specify a path from the source to the destination. This is the purpose of the uri parameter.
If uri is
null
, then libvirt will try to find the best method.Uri may specify the hostname or IP address of the destination host as seen from the source, or uri may be a URI giving transport, hostname, user, port, etc. in the usual form.
Uri should only be specified if you want to migrate over a specific interface on the remote host.
For Qemu/KVM, the URI should be of the form
"tcp://hostname[:port]"
.This does not require TCP auth to be setup between the connections, since migrate uses a straight TCP connection (unless using the PEER2PEER flag, in which case URI should be a full fledged libvirt URI).
Refer also to driver documentation for the particular URIs supported.
The maximum bandwidth (in Mbps) that will be used to do migration can be specified with the bandwidth parameter. If set to 0, libvirt will choose a suitable default.
Some hypervisors do not support this feature and will return an error if bandwidth is not 0. To see which features are supported by the current hypervisor, see Connect.getCapabilities, /capabilities/host/migration_features.
There are many limitations on migration imposed by the underlying technology for example it may not be possible to migrate between different processors even with the same architecture, or between different types of hypervisor.
If the hypervisor supports it, dxml can be used to alter host-specific portions of the domain XML that will be used on the destination.
- Parameters:
dconn
- destination host (a Connect object)dxml
- (optional) XML config for launching guest on targetflags
- flagsdname
- (optional) rename domain to this at destinationuri
- (optional) dest hostname/URI as seen from the source hostbandwidth
- (optional) specify migration bandwidth limit in Mbps- Returns:
- the new domain object if the migration was successful. Note that the new domain object exists in the scope of the destination connection (dconn).
- Throws:
LibvirtException
- if the migration fails
-
migrate
public Domain migrate(Connect dconn, long flags, String dname, String uri, long bandwidth) throws LibvirtException Migrate this domain object from its current host to the destination host given by dconn (a connection to the destination host). Flags may be one of more of the following: Domain.MigrateFlags.LIVE Attempt a live migration. If a hypervisor supports renaming domains during migration, then you may set the dname parameter to the new name (otherwise it keeps the same name). If this is not supported by the hypervisor, dname must be NULL or else you will get an error. Since typically the two hypervisors connect directly to each other in order to perform the migration, you may need to specify a path from the source to the destination. This is the purpose of the uri parameter.If uri is NULL, then libvirt will try to find the best method. Uri may specify the hostname or IP address of the destination host as seen from the source, or uri may be a URI giving transport, hostname, user, port, etc. in the usual form. Uri should only be specified if you want to migrate over a specific interface on the remote host. For Qemu/KVM, the uri should be of the form "tcp://hostname[:port]". This does not require TCP auth to be setup between the connections, since migrate uses a straight TCP connection (unless using the PEER2PEER flag, in which case URI should be a full fledged libvirt URI). Refer also to driver documentation for the particular URIs supported. If set to 0, libvirt will choose a suitable default. Some hypervisors do not support this feature and will return an error if bandwidth is not 0. To see which features are supported by the current hypervisor, see Connect.getCapabilities, /capabilities/host/migration_features. There are many limitations on migration imposed by the underlying technology - for example it may not be possible to migrate between different processors even with the same architecture, or between different types of hypervisor.- Parameters:
dconn
- destination host (a Connect object)flags
- flagsdname
- (optional) rename domain to this at destinationuri
- (optional) dest hostname/URI as seen from the source hostbandwidth
- optional) specify migration bandwidth limit in Mbps- Returns:
- the new domain object if the migration was successful. Note that the new domain object exists in the scope of the destination connection (dconn).
- Throws:
LibvirtException
-
migrate
Migrate the domain object from its current host to the destination host given by dconn (a connection to the destination host). See VIR_MIGRATE_PARAM_* and virDomainMigrateFlags for detailed description of accepted migration parameters and flags. See virDomainMigrateFlags documentation for description of individual flags. VIR_MIGRATE_TUNNELLED and VIR_MIGRATE_PEER2PEER are not supported by this API, use virDomainMigrateToURI3 instead.
There are many limitations on migration imposed by the underlying technology - for example it may not be possible to migrate between different processors even with the same architecture, or between different types of hypervisor. virDomainFree should be used to free the resources after the returned domain object is no longer needed.
For more informations, please @see virDomainMigrate3- Parameters:
dconn
- destination host (a Connect object)params
- (optional) migration parametersflags
- bitwise-OR of virDomainMigrateFlags- Returns:
- the new domain object if the migration was successful. Note that the new domain object exists in the scope of the destination connection (dconn).
- Throws:
LibvirtException
-
migrateSetMaxDowntime
Sets maximum tolerable time for which the domain is allowed to be paused at the end of live migration.- Parameters:
downtime
- the time to be down- Returns:
- always 0
- Throws:
LibvirtException
- See Also:
-
migrateToURI
public int migrateToURI(String dconnuri, String miguri, String dxml, long flags, String dname, long bandwidth) throws LibvirtException Migrate the domain object from its current host to the destination denoted by a given URI.The destination is given either in dconnuri (if the
PEER2PEER
is flag set), or in miguri (if neither thePEER2PEER
nor theTUNNELED
migration flag is set in flags).- Parameters:
dconnuri
- (optional) URI for target libvirtd if @flags includes PEER2PEERmiguri
- (optional) URI for invoking the migration, not if @flags includs TUNNELEDdxml
- (optional) XML config for launching guest on targetflags
- Controls the migratedname
- The name at the destnationbandwidth
- Specify the migration bandwidth- Returns:
- 0 if successful
- Throws:
LibvirtException
- See Also:
-
migrateToURI
public int migrateToURI(String uri, long flags, String dname, long bandwidth) throws LibvirtException Migrate the domain object from its current host to the destination host given by duri.- Parameters:
uri
- The destination URIflags
- Controls the migratedname
- The name at the destnationbandwidth
- Specify the migration bandwidth- Returns:
- 0 if successful, -1 if not
- Throws:
LibvirtException
- See Also:
-
PMsuspend
Enter the given power management suspension target level.- Throws:
LibvirtException
-
PMsuspendFor
public void PMsuspendFor(SuspendTarget target, long duration, TimeUnit unit) throws LibvirtException Enter the given power management suspension target level for the given duration.- Throws:
LibvirtException
-
PMwakeup
Immediately wake up a guest using power management.Injects a wakeup into the guest that previously used
PMsuspend(org.libvirt.SuspendTarget)
orPMsuspendFor(org.libvirt.SuspendTarget, long, java.util.concurrent.TimeUnit)
, rather than waiting for the previously requested duration (if any) to elapse.- Throws:
LibvirtException
-
pinVcpu
Dynamically changes the real CPUs which can be allocated to a virtual CPU. This function requires priviledged access to the hypervisor.- Parameters:
vcpu
- virtual cpu numbercpumap
- bit map of real CPUs represented by the the lower 8 bits of each int in the array. Each bit set to 1 means that corresponding CPU is usable. Bytes are stored in little-endian order: CPU0-7, 8-15... In each byte, lowest CPU number is least significant bit.- Throws:
LibvirtException
-
reboot
Reboot this domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.- Parameters:
flags
- extra flags for the reboot operation, seeDomain.RebootFlags
- Throws:
LibvirtException
-
resume
Resume this suspended domain, the process is restarted from the state where it was frozen by calling virSuspendDomain(). This function may requires privileged access- Throws:
LibvirtException
-
addBlockJobListener
Adds a callback to receive notifications of Block Job events- Parameters:
cb
-- Throws:
LibvirtException
- See Also:
-
removeBlockJobListener
Removes BlockJobListener from the event framework, so it no longer receives events- Parameters:
cb
- The BlockJobListener- Throws:
LibvirtException
-
addIOErrorListener
Adds a callback to receive notifications of IOError domain events occurring on this domain.- Parameters:
cb
- the IOErrorCallback instance- Throws:
LibvirtException
- on failure- See Also:
-
addRebootListener
Adds the specified listener to receive reboot events for this domain.- Parameters:
l
- the reboot listener- Throws:
LibvirtException
- on failure- Since:
- 1.5.2
- See Also:
-
addAgentLifecycleListener
Adds the specified listener to receive agent lifecycle events for this domain.- Parameters:
cb
- the agent lifecycle listener- Throws:
LibvirtException
- on failure- See Also:
-
addLifecycleListener
Adds the specified listener to receive lifecycle events for this domain.- Parameters:
l
- the lifecycle listener- Throws:
LibvirtException
- on failure- See Also:
-
addPMWakeupListener
Adds the specified listener to receive PMWakeup events for this domain.- Parameters:
l
- the PMWakeup listener- Throws:
LibvirtException
- on failure- Since:
- 1.5.2
- See Also:
-
addPMSuspendListener
Adds the specified listener to receive PMSuspend events for this domain.- Parameters:
l
- the PMSuspend listener- Throws:
LibvirtException
- on failure- Since:
- 1.5.2
- See Also:
-
reset
Reset a domain immediately without any guest OS shutdown.- Throws:
LibvirtException
-
revertToSnapshot
Revert the domain to a given snapshot.- Parameters:
snapshot
- the snapshot to revert to- Returns:
- 0 if the creation is successful
- Throws:
LibvirtException
- See Also:
-
save
Suspends this domain and saves its memory contents to a file on disk. After the call, if successful, the domain is not listed as running anymore (this may be a problem). Use Connect.virDomainRestore() to restore a domain after saving.- Parameters:
to
- path for the output file- Throws:
LibvirtException
-
screenshot
- Throws:
LibvirtException
-
setAutostart
Configures the network to be automatically started when the host machine boots.- Parameters:
autostart
-- Throws:
LibvirtException
-
setMaxMemory
* Dynamically change the maximum amount of physical memory allocated to a domain. This function requires priviledged access to the hypervisor.- Parameters:
memory
- the amount memory in kilobytes- Throws:
LibvirtException
-
setMemory
Dynamically changes the target amount of physical memory allocated to this domain. This function may requires priviledged access to the hypervisor.- Parameters:
memory
- in kilobytes- Throws:
LibvirtException
-
setMetadata
public void setMetadata(int type, String metadata, String key, String uri, int flags) throws LibvirtException Sets the appropriate domain element given by type to the value of metadata. A type of MetadataType.DESCRIPTION is free-form text; MetadataType.TITLE is free-form, but no newlines are permitted, and should be short (although the length is not enforced). For these two options key and uri are irrelevant and must be set to null. For type MetadataType.ELEMENT metadata must be well-formed XML belonging to namespace defined by uri with local name key. Passing null for metadata says to remove that element from the domain XML (passing the empty string leaves the element present).- Parameters:
type
- seeDomain.MetadataType
metadata
- the new metadata contentkey
- XML namespace prefix for type MetadataType.ELEMENT, null otherwiseuri
- XML namespace URI for typeMetadataType.ELEMENT, null otherwiseflags
- seeDomain.ModificationImpact
- Throws:
LibvirtException
-
setSchedulerParameters
Changes the scheduler parameters- Parameters:
params
- an array of SchedParameter objects to be changed- Throws:
LibvirtException
-
setUserPassword
Sets the user password to the value specified by password. If flags contain DomainSetUserPasswordFlags.DOMAIN_PASSWORD_ENCRYPTED, the password is assumed to be encrypted by the method required by the guest OS.- Parameters:
user
- the username that will get a new passwordpassword
- the password to setflags
- seeDomain.DomainSetUserPasswordFlags
- Throws:
LibvirtException
-
setVcpus
Dynamically changes the number of virtual CPUs used by this domain. Note that this call may fail if the underlying virtualization hypervisor does not support it or if growing the number is arbitrary limited. This function requires privileged access to the hypervisor.- Parameters:
nvcpus
- the new number of virtual CPUs for this domain- Throws:
LibvirtException
-
setVcpusFlags
Dynamically changes the number of virtual CPUs used by this domain. Note that this call may fail if the underlying virtualization hypervisor does not support it or if growing the number is arbitrary limited. This function requires privileged access to the hypervisor.- Parameters:
nvcpus
- the new number of virtual CPUs for this domainflags
-Domain.VcpuFlags
- Throws:
LibvirtException
-
sendKey
Send key(s) to the guest.- Parameters:
codeset
- the set of keycodesholdtime
- the duration that the keys will be held (in milliseconds)keys
- the key codes to be send- Throws:
LibvirtException
-
shutdown
Shuts down this domain, the domain object is still usable there after but the domain OS is being stopped. Note that the guest OS may ignore the request. TODO: should we add an option for reboot, knowing it may not be doable in the general case ?- Throws:
LibvirtException
-
snapshotCreateXML
Creates a new snapshot of a domain based on the snapshot xml contained in xmlDesc.- Parameters:
xmlDesc
- string containing an XML description of the domainflags
- flags for creating the snapshot, see theDomain.SnapshotCreateFlags
for the flag options- Returns:
- the snapshot
- Throws:
LibvirtException
- See Also:
-
snapshotCreateXML
Creates a new snapshot of a domain based on the snapshot xml contained in xmlDesc.This is just a convenience method, it has the same effect as calling
snapshotCreateXML(xmlDesc, 0);
.- Parameters:
xmlDesc
- string containing an XML description of the domain- Returns:
- the snapshot, or null on Error
- Throws:
LibvirtException
- See Also:
-
snapshotCurrent
Get the current snapshot for a domain, if any.- Returns:
- the snapshot
- Throws:
LibvirtException
- See Also:
-
snapshotListNames
Collect the list of domain snapshots for the given domain. With the option to pass flags- Parameters:
flags
-Domain.SnapshotListFlags
- Returns:
- The list of names, or null if an error
- Throws:
LibvirtException
- See Also:
-
snapshotListNames
Collect the list of domain snapshots for the given domain.This is just a convenience method, it has the same effect as calling
snapshotListNames(0);
.- Returns:
- The list of names, or null if an error
- Throws:
LibvirtException
- See Also:
-
snapshotLookupByName
Retrieve a snapshot by name- Parameters:
name
- the name- Returns:
- The located snapshot
- Throws:
LibvirtException
- See Also:
-
snapshotNum
Provides the number of domain snapshots for this domain..- Throws:
LibvirtException
- See Also:
-
suspend
Suspends this active domain, the process is frozen without further access to CPU resources and I/O but the memory used by the domain at the hypervisor level will stay allocated. Use Domain.resume() to reactivate the domain. This function requires priviledged access.- Throws:
LibvirtException
-
undefine
undefines this domain but does not stop it if it is running- Throws:
LibvirtException
-
undefine
Undefines this domain but does not stop if it it is running. With option for passing flags- Parameters:
flags
- flags for undefining the domain. See virDomainUndefineFlagsValues for more information- Throws:
LibvirtException
- See Also:
-
updateDeviceFlags
Change a virtual device on a domain- Parameters:
xml
- the xml to update withflags
- controls the update- Returns:
- always 0
- Throws:
LibvirtException
- See Also:
-
qemuAgentCommand
Commands for Qemu Guest Agent helper daemon- Parameters:
cmd
- the guest agent command stringtimeout
- timeout secondsflags
- execution flags- Returns:
- result strings if success, NULL in failure.
- Throws:
LibvirtException
- See Also:
-
qemuMonitorCommand
Qemu Monitor Command - it will only work with hypervisor connections to the QEMU driver.- Parameters:
cmd
- the qemu monitor command stringflags
- bitwise-or of supported virDomainQemuMonitorCommandFlags- Returns:
- result a string returned by @cmd
- Throws:
LibvirtException
- See Also:
-