libvirt/include/libvirt
Eric Blake d16e5b15ed snapshots: Add flag to guarantee topological sort
When using virDomainSnapshotCreateXML with the REDEFINE flag on
multiple snapshot metadata XML descriptions, we require that a child
cannot be redefined before its parent.  Since libvirt already tracks a
DAG, it is more convenient if we can ensure that
virDomainListAllSnapshots() and friends have a way to return data in
an order that we can directly reuse, rather than having to
post-process the data ourselves to reconstruct the DAG.

Add VIR_DOMAIN_SNAPSHOT_LIST_TOPOLOGICAL as our new guarantee (well, a
guarantee at the time of the API call conclusion; there's always a
possible TOCTTOU race where someone redefining snapshots in between
the API results and the client actually using the list might render
the list out-of-date). Four listing APIs are directly benefitted by
the new flag; additionally, since we document that the older racy
ListNames interfaces should be sized by using the same flags on their
Num counterparts, the Num interfaces must document when they accept
(and ignore) the flag.

We could have supported the new flag just for the ListAll APIs (to
discourage people from using the older racy Num/ListNames APIs), but
it feels weird to special-case this flag value as being applicable to
only a subset of the API while all other List-related flags are
trivially applicable to all 6.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-03-12 20:38:53 -05:00
..
libvirt-admin.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-common.h.in Remove all Author(s): lines from source file headers 2018-12-13 16:08:38 +00:00
libvirt-domain-snapshot.h snapshots: Add flag to guarantee topological sort 2019-03-12 20:38:53 -05:00
libvirt-domain.h domain: Define explicit flags for saved image xml 2019-02-19 21:34:42 -06:00
libvirt-event.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-host.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-interface.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-lxc.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-network.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-nodedev.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-nwfilter.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-qemu.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-secret.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt-storage.h libvirt: Introduce virConnectGetStoragePoolCapabilities 2019-03-06 11:12:48 -05:00
libvirt-stream.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
libvirt.h Enforce a standard header file guard symbol name 2018-12-14 10:47:13 +00:00
Makefile.am admin: enable both admin API functionality and tarball distribution 2016-06-26 00:21:06 +02:00
virterror.h util: move all firewalld-specific stuff into its own files 2019-02-01 12:08:37 -05:00