I'm offline the rest of this week, but wanted to post the progress I've made on patches towards the Incremental Backup RFC: https://www.redhat.com/archives/libvir-list/2018-May/msg01403.html Comments welcome, including any naming suggestions Still to go: - Add .rng file for validating the XML format used in virDomainBackupBegin() - Add flags for validating XML - Add src/conf/checkpoint_conf.c mirroring src/conf/snapshot_conf.c for tracking tree of checkpoints - Add virsh wrappers for calling everything - Add qemu implementation - my first addition will probably just be for push model full backups, then additional patches to expand into pull model (on the qemu list, I still need to review and incorporate Vladimir's patches for exporting a bitmap over NBD) - Bug fixes (but why would there be any bugs in the first place? :) I've got portions of the qemu code working locally, but not polished enough to post as a patch yet; my end goal is to have a working demo against current qemu.git showing the use of virDomainBackupBegin() for incremental backups with the push model prior to the code freeze for 4.5.0 this month, even if that code doesn't get checked into libvirt until later when the qemu code is changed to drop x- prefixes. (That is, I'm hoping to demo that my API is sound, and thus we can include the entrypoints in the libvirt.so for this release, even if the libvirt code for driving pull mode over qemu waits until after a qemu release where the pieces are promoted to a stable form.) Eric Blake (8): snapshots: Avoid term 'checkpoint' for full system snapshot backup: Document nuances between different state capture APIs backup: Introduce virDomainCheckpointPtr backup: Document new XML for backups backup: Introduce virDomainCheckpoint APIs backup: Introduce virDomainBackup APIs backup: Add new domain:checkpoint access control backup: Implement backup APIs for remote driver docs/Makefile.am | 3 + docs/apibuild.py | 2 + docs/docs.html.in | 9 +- docs/domainstatecapture.html.in | 190 ++++++ docs/formatcheckpoint.html.in | 273 +++++++++ docs/formatsnapshot.html.in | 16 +- docs/schemas/domaincheckpoint.rng | 89 +++ include/libvirt/libvirt-domain-checkpoint.h | 158 +++++ include/libvirt/libvirt-domain-snapshot.h | 10 +- include/libvirt/libvirt-domain.h | 14 +- include/libvirt/libvirt.h | 3 +- include/libvirt/virterror.h | 5 +- libvirt.spec.in | 2 + mingw-libvirt.spec.in | 4 + po/POTFILES | 1 + src/Makefile.am | 2 + src/access/viraccessperm.c | 5 +- src/access/viraccessperm.h | 8 +- src/conf/snapshot_conf.c | 2 +- src/datatypes.c | 62 +- src/datatypes.h | 31 +- src/driver-hypervisor.h | 74 ++- src/libvirt-domain-checkpoint.c | 908 ++++++++++++++++++++++++++++ src/libvirt-domain-snapshot.c | 4 +- src/libvirt-domain.c | 8 +- src/libvirt_private.syms | 2 + src/libvirt_public.syms | 19 + src/qemu/qemu_driver.c | 12 +- src/remote/remote_daemon_dispatch.c | 15 + src/remote/remote_driver.c | 31 +- src/remote/remote_protocol.x | 237 +++++++- src/remote_protocol-structs | 129 ++++ src/rpc/gendispatch.pl | 32 +- src/util/virerror.c | 15 +- tests/domaincheckpointxml2xmlin/empty.xml | 1 + tests/domaincheckpointxml2xmlout/empty.xml | 10 + tests/virschematest.c | 2 + tools/virsh-domain.c | 3 +- tools/virsh-snapshot.c | 2 +- tools/virsh.pod | 14 +- 40 files changed, 2347 insertions(+), 60 deletions(-) create mode 100644 docs/domainstatecapture.html.in create mode 100644 docs/formatcheckpoint.html.in create mode 100644 docs/schemas/domaincheckpoint.rng create mode 100644 include/libvirt/libvirt-domain-checkpoint.h create mode 100644 src/libvirt-domain-checkpoint.c create mode 100644 tests/domaincheckpointxml2xmlin/empty.xml create mode 100644 tests/domaincheckpointxml2xmlout/empty.xml -- 2.14.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list