list: add virDomainListAllSnapshots API
commit7beedf6c6330c8ea5aa8e3d2d31c13e1cc7b780d
authorEric Blake <[email protected]>
Wed, 23 May 2012 16:40:50 +0000 (23 10:40 -0600)
committerEric Blake <[email protected]>
Tue, 19 Jun 2012 19:50:03 +0000 (19 13:50 -0600)
tree50a598489d8e2861e4f9c01ccb09fb3e83dacbad
parent3e25987d1a4cef5074e880af1d63a5d0d229e352
list: add virDomainListAllSnapshots API

There was an inherent race between virDomainSnapshotNum() and
virDomainSnapshotListNames(), where an additional snapshot could
be created in the meantime, or where a snapshot could be deleted
before converting the name back to a virDomainSnapshotPtr.  It
was also an awkward name: the function operates on domains, not
domain snapshots.  virDomainSnapshotListChildrenNames() suffered
from the same inherent race, although its naming was nicer.

This patch makes things nicer by grabbing a snapshot list
atomically, in the format most useful to the user.

* include/libvirt/libvirt.h.in (virDomainListAllSnapshots)
(virDomainSnapshotListAllChildren): New declarations.
* src/libvirt.c (virDomainSnapshotListNames)
(virDomainSnapshotListChildrenNames): Add cross-references.
(virDomainListAllSnapshots, virDomainSnapshotListAllChildren):
New functions.
* src/libvirt_public.syms (LIBVIRT_0.9.13): Export them.
* src/driver.h (virDrvDomainListAllSnapshots)
(virDrvDomainSnapshotListAllChildren): New callbacks.
* python/generator.py (skip_function): Prepare for later
hand-written versions.
generator.py