mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
95f5ac9ae5
Some layered products such as oVirt have requested a way to avoid being blocked by guest agent commands when querying a loaded vm. For example, many guest agent commands are polled periodically to monitor changes, and rather than blocking the calling process, they'd prefer to simply time out when an agent query is taking too long. This patch adds a way for the user to specify a custom agent timeout that is applied to all agent commands. One special case to note here is the 'guest-sync' command. 'guest-sync' is issued internally prior to calling any other command. (For example, when libvirt wants to call 'guest-get-fsinfo', we first call 'guest-sync' and then call 'guest-get-fsinfo'). Previously, the 'guest-sync' command used a 5-second timeout (VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT), whereas the actual command that followed always blocked indefinitely (VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK). As part of this patch, if a custom timeout is specified that is shorter than 5 seconds, this new timeout is also used for 'guest-sync'. If there is no custom timeout or if the custom timeout is longer than 5 seconds, we will continue to use the 5-second timeout. Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
112 lines
3.9 KiB
XML
112 lines
3.9 KiB
XML
<domstatus state='running' reason='booted' pid='3803518'>
|
|
<taint flag='high-privileges'/>
|
|
<monitor path='/var/lib/libvirt/qemu/test.monitor' type='unix'/>
|
|
<vcpus>
|
|
<vcpu id='0' pid='3803519'/>
|
|
</vcpus>
|
|
<qemuCaps>
|
|
<flag name='vnet-hdr'/>
|
|
<flag name='qxl.vgamem_mb'/>
|
|
<flag name='qxl-vga.vgamem_mb'/>
|
|
<flag name='pc-dimm'/>
|
|
</qemuCaps>
|
|
<lockstate>testtest</lockstate>
|
|
<devices>
|
|
<device alias='balloon0'/>
|
|
<device alias='video0'/>
|
|
<device alias='serial0'/>
|
|
<device alias='net0'/>
|
|
<device alias='usb'/>
|
|
</devices>
|
|
<numad nodeset='0-2' cpuset='1,3'/>
|
|
<libDir path='/tmp'/>
|
|
<channelTargetDir path='/tmp/channel'/>
|
|
<allowReboot value='yes'/>
|
|
<blockjobs active='yes'/>
|
|
<agentTimeout>-2</agentTimeout>
|
|
<domain type='qemu' id='1'>
|
|
<name>QEMUGuest1</name>
|
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
|
<memory unit='KiB'>219136</memory>
|
|
<currentMemory unit='KiB'>219136</currentMemory>
|
|
<vcpu placement='static'>1</vcpu>
|
|
<os>
|
|
<type arch='i686' machine='pc'>hvm</type>
|
|
<boot dev='hd'/>
|
|
</os>
|
|
<clock offset='utc'/>
|
|
<on_poweroff>destroy</on_poweroff>
|
|
<on_reboot>restart</on_reboot>
|
|
<on_crash>destroy</on_crash>
|
|
<devices>
|
|
<emulator>/usr/bin/qemu-system-i686</emulator>
|
|
<disk type='block' device='disk'>
|
|
<driver name='qemu' type='raw'/>
|
|
<source dev='/dev/HostVG/QEMUGuest1'/>
|
|
<backingStore/>
|
|
<mirror type='block' job='copy' ready='yes'>
|
|
<format type='raw'/>
|
|
<source dev='/dev/HostVG/QEMUGuest1Copy'/>
|
|
</mirror>
|
|
<target dev='hda' bus='ide'/>
|
|
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
|
</disk>
|
|
<disk type='block' device='cdrom'>
|
|
<driver name='qemu' type='raw'/>
|
|
<source dev='/dev/HostVG/QEMUGuest2'/>
|
|
<backingStore/>
|
|
<target dev='hdc' bus='ide'/>
|
|
<readonly/>
|
|
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
|
|
</disk>
|
|
<disk type='file' device='disk'>
|
|
<driver name='qemu' type='raw'/>
|
|
<source file='/tmp/data.img'/>
|
|
<backingStore/>
|
|
<mirror type='file' file='/tmp/copy.img' format='qcow2' job='copy'>
|
|
<format type='qcow2'/>
|
|
<source file='/tmp/copy.img'/>
|
|
<backingStore/>
|
|
</mirror>
|
|
<target dev='vda' bus='virtio'/>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
|
|
</disk>
|
|
<disk type='file' device='disk'>
|
|
<driver name='qemu' type='raw'/>
|
|
<source file='/tmp/logs.img'/>
|
|
<backingStore/>
|
|
<mirror type='file' file='/tmp/logcopy.img' format='qcow2' job='copy' ready='abort'>
|
|
<format type='qcow2'/>
|
|
<source file='/tmp/logcopy.img'/>
|
|
<backingStore type='block' index='1'>
|
|
<format type='raw'/>
|
|
<source dev='/dev/HostVG/backing'>
|
|
<privateData>
|
|
<nodenames>
|
|
<nodename type='storage' name='test-backing-storage'/>
|
|
<nodename type='format' name='test-backing-format'/>
|
|
</nodenames>
|
|
</privateData>
|
|
</source>
|
|
<backingStore/>
|
|
</backingStore>
|
|
</mirror>
|
|
<target dev='vdb' bus='virtio'/>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
|
|
</disk>
|
|
<controller type='usb' index='0'>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
|
</controller>
|
|
<controller type='ide' index='0'>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
|
|
</controller>
|
|
<controller type='pci' index='0' model='pci-root'/>
|
|
<input type='mouse' bus='ps2'/>
|
|
<input type='keyboard' bus='ps2'/>
|
|
<memballoon model='virtio'>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
|
|
</memballoon>
|
|
</devices>
|
|
</domain>
|
|
</domstatus>
|