This is the current state of my incremental backup work on top of the v9 checkpoint patches [1]. While everything compiles and my local tests are able to perform an incremental backup, I already know that the code needs a lot of cleanups before it can be accepted upstream; this is more of a preview post to allow further testing against the APIs while my more immediate focus is on getting checkpoints in. There will be a v10 of this portion of the backup work, but now that checkpoints are nearly ready to go, I'm still aiming to get backups in the same 5.6 release window. [1] https://www.redhat.com/archives/libvir-list/2019-July/msg00236.html I've pushed a tag backup-v9 to both my libvirt.git and libvirt-python.git repos to match: https://repo.or.cz/libvirt/ericb.git/shortlog/refs/tags/backup-v9 https://repo.or.cz/libvirt-python/ericb.git/shortlog/refs/tags/backup-v9 Changes since v8: - lots of rebasing - however, reviews from v8 on this part of the series have not been addressed yet... 001/10:[down] 'backup: qemu: Implement VIR_DOMAIN_CHECKPOINT_XML_SIZE flag' 002/10:[0016] [FC] 'backup: Document new XML for backups' 003/10:[0112] [FC] 'backup: Introduce virDomainBackup APIs' 004/10:[0419] [FC] 'backup: Implement backup APIs for remote driver' 005/10:[0023] [FC] 'backup: Parse and output backup XML' 006/10:[0052] [FC] 'backup: Implement virsh support for backup' 007/10:[0006] [FC] 'backup: qemu: Implement framework for backup job APIs' 008/10:[0010] [FC] 'backup: Wire up qemu full pull backup commands over QMP' 009/10:[----] [-C] 'backup: qemu: Wire up qemu full push backup commands over QMP' 010/10:[down] 'backup: Implement qemu incremental pull backup' Eric Blake (10): backup: qemu: Implement VIR_DOMAIN_CHECKPOINT_XML_SIZE flag backup: Document new XML for backups backup: Introduce virDomainBackup APIs backup: Implement backup APIs for remote driver backup: Parse and output backup XML backup: Implement virsh support for backup backup: qemu: Implement framework for backup job APIs backup: Wire up qemu full pull backup commands over QMP backup: qemu: Wire up qemu full push backup commands over QMP backup: Implement qemu incremental pull backup include/libvirt/libvirt-domain.h | 41 +- src/conf/backup_conf.h | 94 +++ src/conf/virconftypes.h | 3 + src/driver-hypervisor.h | 14 + src/qemu/qemu_blockjob.h | 1 + src/qemu/qemu_domain.h | 4 + src/qemu/qemu_monitor.h | 4 + src/qemu/qemu_monitor_json.h | 3 + docs/docs.html.in | 3 +- docs/format.html.in | 1 + docs/formatbackup.html.in | 184 +++++ docs/formatcheckpoint.html.in | 12 +- docs/index.html.in | 3 +- docs/schemas/domainbackup.rng | 219 ++++++ examples/c/misc/event-test.c | 3 + libvirt.spec.in | 1 + mingw-libvirt.spec.in | 2 + src/conf/Makefile.inc.am | 2 + src/conf/backup_conf.c | 546 ++++++++++++++ src/conf/domain_conf.c | 2 +- src/libvirt-domain-checkpoint.c | 7 +- src/libvirt-domain.c | 219 ++++++ src/libvirt_private.syms | 8 +- src/libvirt_public.syms | 3 + src/qemu/qemu_domain.c | 37 +- src/qemu/qemu_driver.c | 706 ++++++++++++++++++- src/qemu/qemu_monitor.c | 11 + src/qemu/qemu_monitor_json.c | 80 +++ src/qemu/qemu_process.c | 9 + src/remote/remote_driver.c | 3 + src/remote/remote_protocol.x | 53 +- src/remote_protocol-structs | 28 + tests/Makefile.am | 2 + tests/domainbackupxml2xmlin/backup-pull.xml | 9 + tests/domainbackupxml2xmlin/backup-push.xml | 9 + tests/domainbackupxml2xmlin/empty.xml | 1 + tests/domainbackupxml2xmlout/backup-pull.xml | 9 + tests/domainbackupxml2xmlout/backup-push.xml | 9 + tests/domainbackupxml2xmlout/empty.xml | 7 + tests/virschematest.c | 2 + tools/virsh-domain.c | 253 ++++++- tools/virsh.pod | 49 ++ 42 files changed, 2634 insertions(+), 22 deletions(-) create mode 100644 src/conf/backup_conf.h create mode 100644 docs/formatbackup.html.in create mode 100644 docs/schemas/domainbackup.rng create mode 100644 src/conf/backup_conf.c create mode 100644 tests/domainbackupxml2xmlin/backup-pull.xml create mode 100644 tests/domainbackupxml2xmlin/backup-push.xml create mode 100644 tests/domainbackupxml2xmlin/empty.xml create mode 100644 tests/domainbackupxml2xmlout/backup-pull.xml create mode 100644 tests/domainbackupxml2xmlout/backup-push.xml create mode 100644 tests/domainbackupxml2xmlout/empty.xml -- 2.20.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list