Push backup is a backup when hypervisor itself copy backup data to destination in contrast to pull backup when hypervisor exports backup data thru some interface and mgmt itself make a copy. This patch series basically adds API and remote/qemu implementation of backup creation and correspondent backup xml description definition. Just like other blockjobs backup creation is asynchronous. That is creation is merely a backup start and client should track backup error/completion thru blockjob events. Another option is to make backup synchronus operation. AFAIU on this way we have to make backup asynchronus job and thus make all modifying commands unavailable during backup. This makes backup rather obtrusive operation which is not convinient. Backup xml desription follows closely snapshot one and is described in more details in definition patch [1]. Nikolay Shirokovskiy (10): api: add API to create backup add driver based implementation of backup API remote: add backup API qemu: monitor: add backup command misc: add backup block job type conf: add backup definition [1] qemu: add qemuDomainBackupCreateXML implementation qemu: check backup destination before start qemu: prepare backup destination virsh: add create backup command daemon/remote.c | 8 + examples/object-events/event-test.c | 3 + include/libvirt/libvirt-domain-backup.h | 59 +++++++ include/libvirt/libvirt-domain.h | 3 + include/libvirt/libvirt.h | 1 + include/libvirt/virterror.h | 2 + po/POTFILES.in | 2 + src/Makefile.am | 3 + src/access/viraccessperm.c | 3 +- src/access/viraccessperm.h | 6 + src/conf/backup_conf.c | 294 ++++++++++++++++++++++++++++++++ src/conf/backup_conf.h | 69 ++++++++ src/conf/domain_conf.c | 2 +- src/datatypes.c | 60 +++++++ src/datatypes.h | 29 ++++ src/driver-hypervisor.h | 6 + src/libvirt-domain-backup.c | 203 ++++++++++++++++++++++ src/libvirt_private.syms | 9 + src/libvirt_public.syms | 10 ++ src/qemu/qemu_conf.h | 1 + src/qemu/qemu_domain.c | 14 ++ src/qemu/qemu_domain.h | 2 + src/qemu/qemu_driver.c | 249 +++++++++++++++++++++++++++ src/qemu/qemu_monitor.c | 13 ++ src/qemu/qemu_monitor.h | 5 + src/qemu/qemu_monitor_json.c | 36 ++++ src/qemu/qemu_monitor_json.h | 6 + src/remote/remote_driver.c | 7 + src/remote/remote_protocol.x | 24 ++- src/rpc/gendispatch.pl | 29 +++- src/util/virerror.c | 6 + tools/Makefile.am | 1 + tools/virsh-backup.c | 101 +++++++++++ tools/virsh-backup.h | 29 ++++ tools/virsh-domain.c | 3 +- tools/virsh.c | 2 + tools/virsh.h | 1 + 37 files changed, 1290 insertions(+), 11 deletions(-) create mode 100644 include/libvirt/libvirt-domain-backup.h create mode 100644 src/conf/backup_conf.c create mode 100644 src/conf/backup_conf.h create mode 100644 src/libvirt-domain-backup.c create mode 100644 tools/virsh-backup.c create mode 100644 tools/virsh-backup.h -- 1.8.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list