Hello, this is just a proof-of-concept implementation for storing the domain xml description with the xml snapshot data. This is needed for Qemu, since restoring a Qemu domain after changing the "virtual hardware" (like changing RAM size, number of CPUs, controllers) is not possible: The "loadvm" command will fail to restore the saved state. My idea was to save the domain XML data with the snapshot XML data, which currently just contains a reference to the domain UUID. On snapshot-restore that domain description is restored to overwrites the current domain description. I descided to store a reference to the parsed domainObj with the domainSnapshotObj, since my goal was to detect on revert, if resuing the currently running Qemu process is possible, or the the process needs to be restartet with different arguments to revert changes to the "virtual hardware". I hadn't had time to implement this yet, so currently the Qemu process is restarted on every revert, which disconnects any VNC session and is also a lot slower then simply calling "loadvm". For this implementation I needed to pass "virCapsPtr" down to virDomainSnapshotDefParseString(). I only implemented that correctly for Qemu, so vbox and esx might be broken currently. An alternative (and simpler) implementation would be to just store the unparsed XML description with the runtime domainSnapshotObj. This would simplify copying the domain description, but would complicate detecting if "loadvm" is possible or Qemu must be restarted. The implementation currently works very well for me, but I noticed some memory leak, which might be related to this patch (or some other, since my version of libvirt contains several other patches as well). Philipp Hahn (3): Swap virDomain / virFomainSnapshot declaration snapshot: save domain description with snapshot Snapshot: restore domain description from snapshot src/conf/domain_conf.c | 27 +++++++++++-- src/conf/domain_conf.h | 102 ++++++++++++++++++++++++----------------------- src/esx/esx_driver.c | 2 +- src/qemu/qemu_driver.c | 43 +++++++++++++++++++- src/vbox/vbox_tmpl.c | 2 +- 5 files changed, 117 insertions(+), 59 deletions(-) -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list