I think I've addressed most findings from round 3 - by implementing the ability to redefine a snapshot, it becomes possible to restore snapshot hierarchy when recreating a transient domain by the same name. New goodies in this round: several bug fixes, add virsh snapshot-edit, drop undefine --snapshots-full (you can only remove snapshot metadata on undefine). I tested as I went, but this went through so many rebases that there may be some nasties that snuck in; but I wanted to get this posted now. I also know that I'm missing at least one major feature requested in the v3 review: namely, transient domains _should_ auto-remove snapshot metadata files when they halt, but right now aren't doing that. v3 was at: https://www.redhat.com/archives/libvir-list/2011-August/msg01132.html Also available here: git fetch git://repo.or.cz/libvirt/ericb.git snapshot or browse online at: http://repo.or.cz/w/libvirt/ericb.git/shortlog/refs/heads/snapshot I'm also trying to group things by several bugzilla related to various patches (looks like I still need to create a few): Eric Blake (51): https://bugzilla.redhat.com/show_bug.cgi?id=674537 snapshot: fix corner case on OOM during creation https://bugzilla.redhat.com/show_bug.cgi?id=733762 snapshot: better events when starting paused snapshot: fine-tune ability to start paused snapshot: expose --running and --paused in virsh snapshot: fine-tune qemu saved images starting paused snapshot: improve reverting to qemu paused snapshots snapshot: properly revert qemu to offline snapshots snapshot: fine-tune qemu snapshot revert states no bug filed yet... should be one about no stale metadata snapshot: allow deletion of just snapshot metadata snapshot: add snapshot-list --parent to virsh https://bugzilla.redhat.com/show_bug.cgi?id=733529 snapshot: speed up snapshot location snapshot: avoid crash when deleting qemu snapshots snapshot: track current domain across deletion of children snapshot: simplify acting on just children no bug filed yet... should be one about no stale metadata snapshot: let qemu discard only snapshot metadata snapshot: identify which snapshots have metadata snapshot: reflect new dumpxml and list options in virsh snapshot: identify qemu snapshot roots snapshot: allow recreation of metadata snapshot: refactor virsh snapshot creation snapshot: improve virsh snapshot-create, add snapshot-edit snapshot: add qemu snapshot creation without metadata no bug filed yet... should be one about snapshot migration snapshot: add qemu snapshot redefine support snapshot: prevent stranding snapshot data on domain destruction snapshot: teach virsh about new undefine flags snapshot: refactor some qemu code snapshot: cache qemu-img location snapshot: support new undefine flags in qemu snapshot: prevent migration from stranding snapshot data https://bugzilla.redhat.com/show_bug.cgi?id=638510 snapshot: refactor domain xml output snapshot: allow full domain xml in snapshot snapshot: correctly escape generated xml snapshot: update rng to support full domain in xml snapshot: store qemu domain details in xml snapshot: additions to domain xml for disks snapshot: reject transient disks where code is not ready snapshot: introduce new deletion flag snapshot: expose new delete flag in virsh snapshot: allow halting after snapshot snapshot: expose halt-after-creation in virsh snapshot: wire up new qemu monitor command snapshot: support extra state in snapshots snapshot: add <disks> to snapshot xml snapshot: also support disks by path snapshot: add virsh domblklist command snapshot: add flag for requesting disk snapshot snapshot: wire up disk-only flag to snapshot-create snapshot: reject unimplemented disk snapshot features snapshot: make it possible to audit external snapshot snapshot: wire up live qemu disk snapshots snapshot: use SELinux and lock manager with external snapshots docs/formatdomain.html.in | 40 +- docs/formatsnapshot.html.in | 269 ++- docs/schemas/Makefile.am | 1 + docs/schemas/domain.rng | 2555 +------------------- docs/schemas/{domain.rng => domaincommon.rng} | 32 +- docs/schemas/domainsnapshot.rng | 84 +- examples/domain-events/events-c/event-test.c | 37 +- include/libvirt/libvirt.h.in | 66 +- src/conf/domain_audit.c | 12 +- src/conf/domain_audit.h | 4 +- src/conf/domain_conf.c | 902 ++++++-- src/conf/domain_conf.h | 76 +- src/esx/esx_driver.c | 38 +- src/libvirt.c | 256 ++- src/libvirt_private.syms | 8 + src/libxl/libxl_conf.c | 5 + src/libxl/libxl_driver.c | 11 +- src/qemu/qemu_command.c | 5 + src/qemu/qemu_conf.h | 1 + src/qemu/qemu_driver.c | 1532 +++++++++--- src/qemu/qemu_hotplug.c | 18 +- src/qemu/qemu_migration.c | 48 +- src/qemu/qemu_migration.h | 2 - src/qemu/qemu_monitor.c | 24 + src/qemu/qemu_monitor.h | 4 + src/qemu/qemu_monitor_json.c | 33 + src/qemu/qemu_monitor_json.h | 4 + src/qemu/qemu_monitor_text.c | 40 + src/qemu/qemu_monitor_text.h | 4 + src/qemu/qemu_process.c | 11 +- src/uml/uml_driver.c | 56 +- src/vbox/vbox_tmpl.c | 43 +- src/xen/xend_internal.c | 12 +- src/xenxs/xen_sxpr.c | 5 + src/xenxs/xen_xm.c | 5 + tests/domainsnapshotxml2xmlin/disk_snapshot.xml | 16 + tests/domainsnapshotxml2xmlout/disk_snapshot.xml | 77 + tests/domainsnapshotxml2xmlout/full_domain.xml | 35 + .../qemuxml2argv-disk-snapshot.args | 7 + .../qemuxml2argv-disk-snapshot.xml | 39 + .../qemuxml2argv-disk-transient.xml | 27 + tests/qemuxml2argvtest.c | 2 + tests/virsh-optparse | 20 + tools/virsh.c | 772 +++++- tools/virsh.pod | 214 ++- 45 files changed, 3978 insertions(+), 3474 deletions(-) copy docs/schemas/{domain.rng => domaincommon.rng} (98%) create mode 100644 tests/domainsnapshotxml2xmlin/disk_snapshot.xml create mode 100644 tests/domainsnapshotxml2xmlout/disk_snapshot.xml create mode 100644 tests/domainsnapshotxml2xmlout/full_domain.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-snapshot.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-transient.xml -- 1.7.4.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list