When migration fails in Perform phase, we call Finish on the destination host with cancelled=1 and get the error from there and report it to the user. This works well if the error on the destination caused the migration to fail. But in other cases the main error may reported by the source and the destination would just be complaining about broken migration stream. In other words, we don't really know which error caused the migration to fail and we have no way of detecting that. So instead of choosing one error, this patch will combine the error messages from both sides of migration into a single message and report it to the user. The result would be, for example: operation failed: migration failed. Message from the source host: operation failed: job 'migration out' failed: Certificate does not match the hostname ble.bla. Message from the destination host: operation failed: job 'migration in' failed: load of migration failed: Invalid argument And yes, this is ugly, but I wasn't able to come up with a better way of fixing this issue. https://issues.redhat.com/browse/RHEL-58933 Signed-off-by: Jiri Denemark <jdenemar@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
Libvirt API for virtualization
Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
For some of these hypervisors, it provides a stateful management daemon which runs on the virtualization host allowing access to the API both by non-privileged local users and remote users.
Layered packages provide bindings of the libvirt C API into other languages including Python, Perl, PHP, Go, Java, OCaml, as well as mappings into object systems such as GObject, CIM and SNMP.
Further information about the libvirt project can be found on the website:
License
The libvirt C API is distributed under the terms of GNU Lesser General Public License, version 2.1 (or later). Some parts of the code that are not part of the C library may have the more restrictive GNU General Public License, version 2.0 (or later). See the files COPYING.LESSER
and COPYING
for full license terms & conditions.
Installation
Instructions on building and installing libvirt can be found on the website:
https://libvirt.org/compiling.html
Contributing
The libvirt project welcomes contributions in many ways. For most components the best way to contribute is to send patches to the primary development mailing list. Further guidance on this can be found on the website:
https://libvirt.org/contribute.html
Contact
The libvirt project has two primary mailing lists:
- users@lists.libvirt.org (for user discussions)
- devel@lists.libvirt.org (for development only)
Further details on contacting the project are available on the website: