On 08/11/2011 08:36 PM, Eric Blake wrote:
In implementing this in virsh, I found that for backwards
compatibility
reasons, it would be easier to two flags instead of one, since both use
cases seem plausible (do the bare minimum to remove my domain, but
wihtout losing snapshot data, vs. nuke everything including my snapshot
data that was associated with the domain). Hence I'm modifying this
slightly to be:
VIR_DOMAIN_UNDEFINE_SNAPSHOTS_FULL -> maps to
virDomainSnapshotDelete(,0), can be emulated on older servers
VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA -> maps to
virDomainSnapshotDelete(,VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY),
cannot be simulated with server older than 0.9.5
And to make it easier to detect whether a domain has libvirt snapshot
metadata, I need to add:
virDomainSnapshotNum(,VIR_DOMAIN_SNAPSHOT_NUM_METADATA)
For ESX and Vbox, where snapshot relationships are reconstructed on the
fly from information always available outside of libvirt, there is no
libvirt metadata to delete, and the presence of snapshots does not
interfere with domain undefines, so the new flag will return 0. But for
qemu, where libvirt stores the relationships, the new flag will return
the same as passing flags=0.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org