Commit Graph
52107 Commits
Author SHA1 Message Date
Peter Krempa ee49106dbf conf: Introduce VIR_STORAGE_NET_HOST_TRANS_FD
Prepare the parser code and anything using 'virStorageNetHostTransport'
to support passing a FD instead of opening the connection by qemu
itself.

For now this just prepares the parser and data structures, but the code
is dormant.

Only code paths which will actually support FD passing will then enable
it in the future.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Spellchecked-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-04-01 16:18:29 +02:00
Peter Krempa 081f3ec3dd virDomainStorageNetworkParseHost: Refactor cleanup
Use a 'switch' statement instead of a bunch of if statements to do
validation and selection what to parse.

Remove the pre-clearing of the struct as we always allocate cleared
memory for it and we can reorder assignments to avoid the need for
cleanup.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-04-01 16:18:29 +02:00
Peter Krempa aa3c1de260 virDomainStorageNetworkParseHost: Remove unpopulated 'transport' variable
Since the refactor to use proper enum type for the network transport the
'transport' variable is no longer filled. Remove it and fix the error
message which references it without using NULLSTR.

Fixes: 452695926d
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-04-01 16:18:29 +02:00
Peter Krempa 93ecaec845 virDomainDiskDefValidateSourceChainOne: Fix validation of 'data-file' nesting
As the 'dataStore' is internally represented as a virStorageSource
object it has provisions for nesting which is not supported.

When I've reviewed and modified the commit adding data file parsing
support I've added code that was supposed to reject any 'backingStore'
and 'dataStore' structures nested in a source of a 'dataStore'.

Unfortunately the check was broken as one of the terms checked the
presence of parent's 'backingStore' instead of the nesting.

Fix it and add tests.

Fixes: b3171cf8da
Resolves: https://issues.redhat.com/browse/RHEL-85320
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2025-04-01 16:16:05 +02:00
Peter Krempa 7d4de62cfa esxConnectListAllDomains: Don't propagate failure to lookup a single domain
In esxConnectListAllDomains if the lookup of the VM name and UUID fails
for a single VM (possible e.g. with broken storage) the whole API would
return failure even when there are working VMs.

Rework the lookup so that if a subset fails we ignore the failure on
those. We report an error only if lookup of all of the objects failed.
Failure is reported from the last one.

Resolves: https://issues.redhat.com/browse/RHEL-80606
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-04-01 16:15:24 +02:00
Daniel P. Berrangé 904b5e9d06 news: document dropping apparmor < 3.0.0
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2025-04-01 13:38:01 +01:00
Daniel P. Berrangé 5ed5673ebf meson: drop remaining checks for apparmor version
Now that we mandate version 3, any remaining conditional checks
in meson/source code can be removed.

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2025-04-01 12:28:29 +01:00
Daniel P. Berrangé 2c46d5c216 Revert "apparmor: Allow version-specific bits in profiles"
This reverts commit 19eb8abc9a.

There is no longer any need to dynamically generate version specific
rules. This revert can be reverted, if the need ever arises again
in the future.

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2025-04-01 12:28:27 +01:00
Daniel P. Berrangé b8b60c4bee Revert "apparmor: Allow version-specific bits in abstractions too"
This reverts commit 63a312fa2d.

There is no longer any need to dynamically generate version specific
rules. This revert can be reverted, if the need ever arises again
in the future.

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2025-04-01 12:28:24 +01:00
Daniel P. Berrangé 933494237a apparmor: assume at least apparmor >= 3
By assuming version 3, we can drop all the conditional version
substitutions from the profiles.

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2025-04-01 12:28:20 +01:00
Daniel P. Berrangé 21b7b02b72 meson: mandate apparmor >= 3.0.0
We can now assume at least version three:

 * Debian 12: 3.0.8
 * openSUSE Leap 15.5: 3.0.4
 * openSUSE Leap 15.6: 3.1.7
 * Ubuntu 22.04: 3.0.4
 * Ubuntu 24.04: 4.0.0

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2025-04-01 12:27:13 +01:00
Jiri Denemark 52638fb16a Post-release version bump to 11.3.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2025-04-01 12:03:39 +02:00
Jiri Denemark 73329aa737 Release of libvirt-11.2.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
v11.2.0
2025-04-01 11:59:33 +02:00
김인수 803671de80 Translated using Weblate (Korean)
Currently translated at 98.6% (10775 of 10917 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Signed-off-by: 김인수 <simmon@nplob.com>
2025-03-31 10:55:57 +02:00
Andi Chandler 60d3a62c35 Translated using Weblate (English (United Kingdom))
Currently translated at 48.2% (5270 of 10917 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/en_GB/

Signed-off-by: Andi Chandler <andi@gowling.com>
2025-03-31 10:55:57 +02:00
Harikumar Rajkumar 40f5082683 NEWS: qemu: support block disk along with throttle filters
Signed-off-by: Harikumar Rajkumar <harirajkumar230@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2025-03-31 10:52:39 +02:00
Michal Privoznik 0123456789 NEWS: Document features/improvements/bug fixes I've participated in
There are some features/improvements/bug fixes I've either
contributed or reviewed/merged. Document them for upcoming
release.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2025-03-31 09:06:24 +02:00
Peter Krempa d84b249577 NEWS: Mention bump to qemu-6.2, vhost-user shmem check and stats params discoverabilty
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
v11.2.0-rc2
2025-03-28 09:34:55 +01:00
Philipp Schuster 8a48877a5a doc: remove wrong comment
This comment is wrong as later qemuMigrationSrcRun() is called which
checks if TLS should be used and activated. QEMU has built-in support
for TLS, which this refers to.

The comment originates from a time when tunneled support was the only
way to get encryption.

Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de>
2025-03-26 14:25:43 +01:00
Jim Fehlig 3cb6e14343 lib: virDomain{Save,Restore}Params: Ensure absolute path
When invoking virDomainSaveParams with a relative path, the image is
saved to the daemon's CWD. Similarly, when providing virDomainRestoreParams
with a relative path, it attempts to restore from the daemon's CWD. In most
configurations, the daemon's CWD is set to '/'. Ensure a relative path is
converted to absolute before invoking the driver domain{Save,Restore}Params
functions.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2025-03-25 10:24:22 -06:00
Weblate fa86037eb5 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/

Signed-off-by: Fedora Weblate Translation <i18n@lists.fedoraproject.org>
2025-03-25 13:25:31 +01:00
Pavel Hrdina 52e3f3041f qemu_driver: Fix virDomainSaveImageDefineXML
Commit 28a0621528 added support to restore
sparse images but changed the boolean that controls if we open the file
as read-only or read-write. Editing XML in the save image resulted in
following error message:

    failed to write header to domain save file '/data/images/fedora40.save': Bad file descriptor

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
2025-03-25 12:50:30 +01:00
Jiri Denemark a442f46b0e po: Refresh potfile for v11.2.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
v11.2.0-rc1
2025-03-25 12:23:31 +01:00
Michal Privoznik 50981052a5 qemu: Emit NIC_MAC_CHANGE event
So far, we only process NIC_RX_FILTER_CHANGED event when the
corresponding device has 'trustGuestRxFilters' enabled. And the
event is emitted only for virtio model. IOW, this is fairly
limited situation and other scenarios don't emit any event (e.g.
change of MAC address on a PCI passthrough device).

Resolves: https://issues.redhat.com/browse/RHEL-7035
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2025-03-25 11:49:30 +01:00
Michal Privoznik 057872df2d Introduce NIC_MAC_CHANGE event
The aim off this event is to notify management application that
guest changed MAC address on one of its vNICs so the app can
update its internal records, e.g. for finding match between
guest/host view of vNICs.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2025-03-25 11:49:30 +01:00
Michal Privoznik ac95617d3d qemu: Reflect MAC address change in live domain XML
If a guest changes MAC address on its vNIC, then QEMU emits
NIC_RX_FILTER_CHANGED event (the event is emitted in other cases
too, but that's not important right now). Now, domain XML allows
users to chose whether to trust these events or not:

  <interface trustGuestRxFilters='yes|no'/>

For the 'no' case no action is performed and the event is
ignored. But for the 'yes' case, some host side features of
corresponding vNIC (well tap/macvtap device) are tweaked to
reflect changed MAC address. But what is missing is reflecting
this new MAC address in domain XML.

Basically, what happens is: the host sees traffic with new MAC
address, all tools inside the guest see the new MAC address
(including 'virsh domifaddr --source agent') which makes it
harder to match device in the guest with the one in the domain
XML.

Therefore, report this new MAC address as another attribute of
the <mac/> element:

  <mac address="52:54:00:a4:6f:91" currentAddress="00:11:22:33:44:55"/>

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2025-03-25 11:49:30 +01:00
Boris Fiuczynski d5666b3c2e NEWS: Mention virsh hypervisor-cpu-models command
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2025-03-25 11:34:22 +01:00
Nicolás Gal bd21e22fe6 Translated using Weblate (Spanish)
Currently translated at 52.6% (5708 of 10838 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: Nicolás Gal <nialegal@yandex.com>
2025-03-24 17:13:04 +01:00
Peter Krempa 631fceade9 NEWS: Mention guest agent error code improvements
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 17:46:08 +01:00
Peter Krempa 8ab9c74df9 qemuAgentCheckError: Rewort error if neither return nor error is found
Disambiguate the case from other types of error.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 17:46:08 +01:00
Peter Krempa b38d66e81e qemuAgentCheckError: Use 'VIR_ERR_AGENT_COMMAND_FAILED'
In the two cases when we know that the command returned failure switch
to the new error code so that management applications can
programatically detect failure of the guest agent command.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 17:46:08 +01:00
Peter Krempa c3a92081c8 lib: error: Introduce 'VIR_ERR_AGENT_COMMAND_FAILED'
Add a special error code for when the guest agent returned a failure
message.

Allow management applications to deterministically detect failure of the
guest agent command.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 17:46:08 +01:00
Peter Krempa 8b40067ece docs: Point to VIR_ERR_AGENT_COMMAND_TIMEOUT when setting timeout
In addition to the error constant appearing add docs hinting that this
new error code can be produced on timeouts.

The most relevant place is to do it when setting the timeout.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 17:46:08 +01:00
Peter Krempa 54312df15b qemuAgentCommandFull: Use VIR_ERR_AGENT_COMMAND_TIMEOUT when agent disappears
When the agent disappears after geting a proper command we ought to
report the same error code as if we timed out as it's uncertain whether
the guest agent did anything.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 17:46:07 +01:00
Peter Krempa 305e91dc21 qemu: agent: Differentiate timeouts when syncing from command timeout
As the guest agent code uses timeouts it is possible that we stop
waiting before the guest agent replies. If this happens while syncing
everything is okay because we didn't send any state-changing command.

In case when the timeout happens after a real command was transmitted
it's unknown if the guest-agent processed it or not.

Use the new special error code VIR_ERR_AGENT_COMMAND_TIMEOUT for cases
when we sent non-sync commands, so that the management applications or
users have possibility to react to this situation.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 17:46:07 +01:00
Peter Krempa ae499e4536 lib: error: Introduce 'VIR_ERR_AGENT_COMMAND_TIMEOUT'
Introduce a new special error code for guest agent commands.

The error code will be specifically reported only when an actual command
(not a sync) was issued to the guest agent and the timeout time was
reached.

This will allow users and management applications to differentiate
between the cases when the sync timed out and thus there's no risk in
the agent actually having executed the command and when the actual
command was sent.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 17:46:07 +01:00
Ján Tomko d61ca2665e NEWS: fix one more typo
s/ an / a /

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reported-by: Jiri Denemark <jdenemar@redhat.com>
2025-03-21 16:30:03 +01:00
Boris Fiuczynski 50cc071858 NEWS: hotplug virtio-mem device
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2025-03-21 16:29:48 +01:00
hsu zangmen 25a26bd97b Translated using Weblate (Chinese (Traditional) (zh_TW))
Currently translated at 2.4% (264 of 10838 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/zh_TW/

Signed-off-by: hsu zangmen <chzang55@gmail.com>
2025-03-21 11:13:12 +01:00
Andi Chandler 0ae12c6173 Translated using Weblate (English (United Kingdom))
Currently translated at 48.5% (5262 of 10838 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/en_GB/

Signed-off-by: Andi Chandler <andi@gowling.com>
2025-03-21 11:13:12 +01:00
Sergey A 5801e3ce26 Translated using Weblate (Russian)
Currently translated at 83.8% (9086 of 10838 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ru/

Signed-off-by: "Sergey A." <Ser82-png@yandex.ru>
2025-03-21 11:13:12 +01:00
Jim Fehlig via Devel ec16313f8b NEWS: Mention support for mapped-ram
Add a 'New features' entry for mapped-ram itself, and another
for the parallel save/restore feature built on top.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2025-03-21 10:56:19 +01:00
Jim Fehlig via Devel 6bd9b06484 qemu: Fix build on 32-bit platforms
Commits c2518f7bc7 and 28a0621528 introduced build failures on 32-bit
platforms by using incorrect format specifiers with g_strdup_printf.

In one case, an 'unsigned long' format specifier is used with a
'long long int' variable. Fix by changing the format specifier to
'uintmax_t', and casting the variable likewise.

In a second case, an 'unsigned long' format specifier is used with a
'size_t' variable, which is 'unsigned int' on 32-bit systems. Fix by
changing the format specifier to use the 'z' modifier.

Fixes: c2518f7bc7
Fixes: 28a0621528
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2025-03-21 10:56:19 +01:00
Pavel Hrdina ddb8305049 virsh: add --image-format option to the save command
Option --parallel-channels would require changing configuration file to
be used so introduce this option as well to make it convenient for
users.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
2025-03-21 10:56:19 +01:00
Pavel Hrdina 73cf89e8f2 tools: use virDomainSaveParams only when necessary
We should use the newest API only when user sets parallel-channels.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
2025-03-21 10:56:19 +01:00
Pavel Hrdina b982583d92 tools: use virDomainRestoreParams only when necessary
We should use the newest API only when user sets parallel-channels.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
2025-03-21 10:56:19 +01:00
Pavel Hrdina ff22383b34 qemu: remove VIR_DOMAIN_SAVE_PARALLEL flag
There is no need to use extra flag in addition to the new
"parallel.channels" param.

Using the flag without param would result in using uninitialized
variable. Fixing it would result in error that parallel channels cannot
be less then 1 or setting 1 as default.

Using the param without the flag is ignored.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
2025-03-21 10:56:19 +01:00
Pavel Hrdina 2582f4dcab tools: remote --parallel from virsh save command
There is no need to have --parallel and --parallel-channels especially
when --parallel on its own is the same as not used at all. In both cases
libvirt will default to single channel.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
2025-03-21 10:56:19 +01:00
Pavel Hrdina ec274a96b6 tools: remove --parallel from virsh restore command
There is no need to have --parallel and --parallel-channels especially
when --parallel on its own is the same as not used at all. In both cases
libvirt will default to single channel.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
2025-03-21 10:56:19 +01:00
Ján Tomko 743f49aa66 NEWS: fix even more typos
The 'editting one' was:
Reported-by: Martin Kletzander <mkletzan@redhat.com>
I found the rest myself.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2025-03-21 10:49:25 +01:00