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.
Go to file
Pavel Hrdina 0a164b74eb qemu_snapshot: correctly update metadata when deleting external snapshot with multiple branches
XML metadata for snapshot contains only single list of disk overlays
from the moment when the snapshot was taken. When user creates multiple
branches of snapshots the parent snapshot will still list only the
original disk overlays. This may cause an issue in a specific scenario:

     s1
      |
      +- s2
      +- s3 (active)

For this snapshot topology when we delete s2 metadata for s1 are not
updated. Now when we delete s1 the code operated with incorrect
overlays from s1 metadata in order to update s3 metadata resulting in no
changes to s3 metadata.

Now when user tries to delete s3 it fails with following error:

    error: Failed to delete snapshot s3
    error: operation failed: snapshot VM disk source and parent disk source are not the same

For the actual deletion there is a code to figure out the correct disk
source but it was not used to update metadata as well. Due to reasons
how block commit in libvirt works we need to create a copy of that disk
source in order to have it available when updating metadata as the
original source will be freed at that point.

Resolves: https://issues.redhat.com/browse/RHEL-26276
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2024-04-02 14:14:26 +02:00
.ctags.d
.github/workflows
.gitlab/issue_templates
build-aux syntax-check: Validate :since: tags 2024-02-26 12:10:27 +01:00
ci ci: refresh with lcitool manifest 2024-03-05 10:25:12 +00:00
docs virsh: cmdDomdisplayReload: Require option name for --type 2024-03-25 16:18:32 +01:00
examples examples: Define _GNU_SOURCE for more examples 2024-02-07 18:01:03 +01:00
include libvirt: Introduce virDomainGraphicsReload API 2024-03-08 17:00:15 +01:00
po Translated using Weblate (Korean) 2024-03-29 15:36:18 +01:00
scripts qemu-replies-tool: Dump 'device-list-properties' 2024-02-01 10:55:01 +01:00
src qemu_snapshot: correctly update metadata when deleting external snapshot with multiple branches 2024-04-02 14:14:26 +02:00
subprojects
tests Add test script for loongarch 2024-03-21 14:42:27 +01:00
tools virsh: cmdDomdisplayReload: Require option name for --type 2024-03-25 16:18:32 +01:00
.ctags
.dir-locals.el
.editorconfig
.gitattributes
.gitignore
.gitlab_pages_redirects docs: gitlab redirects: Drop '/libvirt' prefix for hosting the web through gitlab pages 2024-02-13 16:56:49 +01:00
.gitlab-ci.yml
.gitmodules
.gitpublish
.mailmap
AUTHORS.rst.in
config.h
configmake.h.in
CONTRIBUTING.rst
COPYING
COPYING.LESSER
gitdm.config
libvirt-admin.pc.in
libvirt-lxc.pc.in
libvirt-qemu.pc.in
libvirt.pc.in
libvirt.spec.in spec: Handle new location of bash-completion .pc file 2024-02-27 12:05:38 +00:00
meson_options.txt build: Add userfaultfd_sysctl build option 2024-02-13 17:44:26 +01:00
meson.build Post-release version bump to 10.3.0 2024-04-02 13:43:31 +02:00
NEWS.rst Post-release version bump to 10.3.0 2024-04-02 13:43:31 +02:00
README.rst
run.in run: add ability to set selinux context 2023-08-23 14:22:36 -05:00

GitLab CI Build Status

CII Best Practices

Translation status

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:

https://libvirt.org

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:

Further details on contacting the project are available on the website:

https://libvirt.org/contact.html