libvirt/docs
Eric Blake 0d44788fc3 backup: Introduce virDomainCheckpoint APIs
Introduce a bunch of new public APIs related to backup checkpoints.
Checkpoints are modeled heavily after virDomainSnapshotPtr (both
represent a point in time of the guest), although a snapshot exists
with the intent of rolling back to that state, while a checkpoint
exists to make it possible to create an incremental backup at a later
time.  We may have a future hypervisor that can completely manage
checkpoints without libvirt metadata, but the first two planned
hypervisors (qemu and test) both always use libvirt for tracking
metadata relations between checkpoints, so for now, I've deferred
the counterpart of virDomainSnapshotHasMetadata for a separate
API addition at a later date if there is ever a need for it.

Note that until we allow snapshots and checkpoints to exist
simultaneously on the same domain (although the actual prevention of
this will be in a separate patch for the sake of an easier revert down
the road), that it is not possible to branch out to create more than
one checkpoint child to a given parent, although it may become
possible later when we revert to a snapshot that coincides with a
checkpoint.  This also means that for now, the decision of which
checkpoint becomes the parent of a newly created one is the only
checkpoint with no child (so while there are APIs for dealing with a
current snapshot, we do not need those for checkpoints).  We may end
up exposing a notion of a current checkpoint later, but it's easier to
add stuff when proven needed than to blindly support it now and wish
we hadn't exposed it.

The following map shows the API relations to snapshots, with new APIs
on the right:

Operate on a domain object to create/redefine a child:
virDomainSnapshotCreateXML          virDomainCheckpointCreateXML

Operate on a child object for lifetime management:
virDomainSnapshotDelete             virDomainCheckpointDelete
virDomainSnapshotFree               virDomainCheckpointFree
virDomainSnapshotRef                virDomainCheckpointRef

Operate on a child object to learn more about it:
virDomainSnapshotGetXMLDesc         virDomainCheckpointGetXMLDesc
virDomainSnapshotGetConnect         virDomainCheckpointGetConnect
virDomainSnapshotGetDomain          virDomainCheckpointGetDomain
virDomainSnapshotGetName            virDomainCheckpiontGetName
virDomainSnapshotGetParent          virDomainCheckpiontGetParent
virDomainSnapshotHasMetadata        (deferred for later)
virDomainSnapshotIsCurrent          (no counterpart, see note above)

Operate on a domain object to list all children:
virDomainSnapshotNum                (no counterparts, these are the old
virDomainSnapshotListNames           racy interfaces)
virDomainSnapshotListAllSnapshots   virDomainListAllCheckpoints

Operate on a child object to list descendents:
virDomainSnapshotNumChildren        (no counterparts, these are the old
virDomainSnapshotListChildrenNames   racy interfaces)
virDomainSnapshotListAllChildren    virDomainCheckpointListAllChildren

Operate on a domain to locate a particular child:
virDomainSnapshotLookupByName       virDomainCheckpointLookupByName
virDomainSnapshotCurrent            (no counterpart, see note above)
virDomainHasCurrentSnapshot         (no counterpart, old racy interface)

Operate on a snapshot to roll back to earlier state:
virDomainSnapshotRevert             (no counterpart, instead checkpoints
                                     are used in incremental backups via
				     XML to virDomainBackupBegin)

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-26 16:48:58 -05:00
..
devhelp docs: Remove search.php and all references 2019-04-04 18:45:06 -04:00
fonts docs: Add monospaced Overpass fonts 2016-11-21 13:15:12 +01:00
gitdm gitdm: Add gitdm configuration 2019-06-07 13:18:14 +02:00
html maint: consolidate several .gitignore files 2012-02-03 15:27:16 -07:00
internals remote: delete the avahi mDNS support 2019-06-21 12:59:42 +01:00
js docs: Fix Blog Planet links 2019-06-20 17:01:44 +02:00
kbase docs: introduce a "knowledge base" for task oriented guides 2019-07-09 18:43:12 +01:00
logos docs: add master SVG for libvirt logo 2016-11-11 09:31:10 +00:00
schemas backup: Document new XML for checkpoints 2019-07-26 16:48:58 -05:00
32favicon.png
404.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
acl.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
aclpolkit.html.in Drop UML driver 2018-12-17 17:52:46 +01:00
android-chrome-192x192.png docs: add full set of "favicon" files to support modern clients 2017-08-02 17:00:11 +01:00
android-chrome-256x256.png docs: add full set of "favicon" files to support modern clients 2017-08-02 17:00:11 +01:00
api_extension.html.in docs: minor updates to to new API doc 2019-07-05 15:03:35 -05:00
api.html.in docs: Grammar and spelling fixes 2018-05-03 12:40:37 +01:00
apibuild.py backup: Introduce virDomainCheckpoint APIs 2019-07-26 16:48:58 -05:00
apple-touch-icon.png docs: add full set of "favicon" files to support modern clients 2017-08-02 17:00:11 +01:00
apps.html.in docs: Add virt-lightning app 2019-04-09 16:59:49 +02:00
architecture.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
architecture.gif
architecture.html.in docs: remove mention of legacy Xen driver 2018-04-09 11:38:47 -06:00
auditlog.html.in conf: Audit TPM emulator device at domain startup 2018-06-06 10:48:41 -04:00
auth.html.in docs: use JavaScript based PolicyKit .rules files 2019-01-21 18:45:27 +00:00
bindings.html.in docs: introduce libvirt-dbus binding 2018-03-23 12:59:56 +01:00
browserconfig.xml docs: add full set of "favicon" files to support modern clients 2017-08-02 17:00:11 +01:00
bugs.html.in docs: remove mention of legacy Xen driver 2018-04-09 11:38:47 -06:00
cgroups.html.in docs: Update how we create cgroup directory names 2018-08-13 11:53:53 +02:00
compiling.html.in Forget last daemon/ dir artefacts 2018-07-27 15:44:38 +02:00
contact.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
contribute.html.in docs: Grammar and spelling fixes 2018-05-03 12:40:37 +01:00
csharp.html.in docs: update all GIT repo examples to use https:// protocol 2018-03-21 14:48:01 +00:00
dbus.html.in docs: introduce libvirt-dbus binding 2018-03-23 12:59:56 +01:00
devguide.html.in docs: update all GIT repo examples to use https:// protocol 2018-03-21 14:48:01 +00:00
docs.html.in backup: Introduce virDomainCheckpoint APIs 2019-07-26 16:48:58 -05:00
downloads.html.in docs: update Perl download to point to modern CPAN site 2019-04-04 12:33:55 +01:00
drivers.html.in docs: Update drivers page to link to storage.html 2019-05-06 07:33:01 -04:00
drvbhyve.html.in docs: bhyve: warn about bhyve:commandline risks 2019-02-01 22:08:55 +04:00
drvesx.html.in docs: Grammar and spelling fixes 2018-05-03 12:40:37 +01:00
drvhyperv.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
drvlxc.html.in docs: Grammar and spelling fixes 2018-05-03 12:40:37 +01:00
drvnodedev.html.in docs: documentation for vfio-ccw passthrough 2018-05-14 12:27:47 -04:00
drvopenvz.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
drvphyp.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
drvqemu.html.in docs: drvqemu: remove relative time reference 2019-07-17 17:33:55 +02:00
drvremote.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
drvtest.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
drvvbox.html.in docs: Update vbox driver documentation. 2017-11-07 17:50:15 -05:00
drvvirtuozzo.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
drvvmware.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
drvxen.html.in libxl: Drop support for parsing sxpr format in libxlConnectDomainXMLFromNative 2019-07-09 10:27:19 +02:00
errors.html.in docs: Grammar and spelling fixes 2018-05-03 12:40:37 +01:00
favicon-16x16.png docs: add full set of "favicon" files to support modern clients 2017-08-02 17:00:11 +01:00
favicon-32x32.png docs: add full set of "favicon" files to support modern clients 2017-08-02 17:00:11 +01:00
favicon.ico docs: add full set of "favicon" files to support modern clients 2017-08-02 17:00:11 +01:00
firewall.html.in network: allow configuring firewalld zone for virtual network bridge device 2019-02-01 12:57:13 -05:00
format.html.in backup: Document new XML for checkpoints 2019-07-26 16:48:58 -05:00
formatcaps.html.in Drop UML driver 2018-12-17 17:52:46 +01:00
formatcheckpoint.html.in backup: Document new XML for checkpoints 2019-07-26 16:48:58 -05:00
formatdomain.html.in docs: Extend TPM docs with new encryption element 2019-07-26 10:31:02 +01:00
formatdomaincaps.html.in docs: Drop the external AMD SEV links 2019-05-31 16:19:04 +02:00
formatnetwork.html.in docs: formatnetwork: Document xmlns:dnsmasq 2019-07-17 17:18:56 -04:00
formatnetworkport.html.in docs: fix some typos in networkport documentation 2019-06-18 14:35:43 +02:00
formatnode.html.in xml: nodedev: make pci capability class element optional 2019-03-22 12:59:56 +03:00
formatnwfilter.html.in Drop UML driver 2018-12-17 17:52:46 +01:00
formatsecret.html.in docs: Extend Secret XML documentation with vtpm usage type 2019-07-26 10:31:00 +01:00
formatsnapshot.html.in snapshot: Documentation and comment improvements 2019-07-24 17:03:34 -05:00
formatstorage.html.in storage: optional 'refresh' elemement on pool 2019-03-19 16:46:21 +01:00
formatstoragecaps.html.in caps: drop requiredSourceElements from storage pool capabilities 2019-03-07 12:01:09 +01:00
formatstorageencryption.html.in storage: Disallow create/resize of qcow2 encrypted images 2018-06-26 14:02:43 -04:00
genaclperms.pl docs: fix acl permission docs 2019-07-01 17:10:20 +02:00
generic.css docs: Use Overpass Mono as the monospace font 2016-11-21 14:04:05 +01:00
goals.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
governance.html.in docs/governance: Clarify the version number of the LGPL 2019-01-25 14:04:20 +01:00
hacking.html.in docs: hacking: Discourage use of the ternary operator and ban it's abuse 2019-05-22 14:46:29 +02:00
hooks.html.in network: convert hook script to take a network port XML 2019-06-17 15:19:54 +01:00
hvsupport.pl qemu: delete methods which are no longer supported 2019-06-27 14:41:48 +01:00
index.html.in backup: Document new XML for checkpoints 2019-07-26 16:48:58 -05:00
internals.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
java.html.in docs: update all GIT repo examples to use https:// protocol 2018-03-21 14:48:01 +00:00
kbase.html.in docs: introduce a "knowledge base" for task oriented guides 2019-07-09 18:43:12 +01:00
libvirt-daemon-arch.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
libvirt-daemon-arch.png build: regenerate .png files 2012-07-23 16:07:13 -06:00
libvirt-driver-arch.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
libvirt-driver-arch.png build: regenerate .png files 2012-07-23 16:07:13 -06:00
libvirt-object-model.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
libvirt-object-model.png build: regenerate .png files 2012-07-23 16:07:13 -06:00
libvirt-virConnect-example.fig internals: Update to include RPC and Lock links and add new data 2013-03-04 17:36:03 -05:00
libvirt-virConnect-example.png internals: Update to include RPC and Lock links and add new data 2013-03-04 17:36:03 -05:00
libvirt.css docs: update QEMU driver docs to replace deprecated with deleted 2019-06-27 14:43:08 +01:00
logging.html.in Replace QEmu with QEMU 2018-04-01 17:42:29 +02:00
main.css docs: make website responsive for mobile devices 2017-08-07 14:44:40 +01:00
Makefile.am backup: Introduce virDomainCheckpoint APIs 2019-07-26 16:48:58 -05:00
manifest.json docs: Fix syntax-check error 2017-08-02 15:00:28 -04:00
migration-managed-direct.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
migration-managed-direct.png Add documentation about migration. 2011-10-28 10:07:45 +01:00
migration-managed-p2p.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
migration-managed-p2p.png Add documentation about migration. 2011-10-28 10:07:45 +01:00
migration-native.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
migration-native.png Add documentation about migration. 2011-10-28 10:07:45 +01:00
migration-tunnel.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
migration-tunnel.png Add documentation about migration. 2011-10-28 10:07:45 +01:00
migration-unmanaged-direct.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
migration-unmanaged-direct.png Add documentation about migration. 2011-10-28 10:07:45 +01:00
migration.html.in migration.html: Clarify configuration file handling docs 2017-12-08 15:50:52 +01:00
mobile.css docs: add advanced search capabilities 2019-04-11 15:20:17 +01:00
mstile-150x150.png docs: add full set of "favicon" files to support modern clients 2017-08-02 17:00:11 +01:00
newapi.xsl docs: Format bit shift and hex notation for bitwise flag enums 2019-01-31 12:02:35 +01:00
news-2005.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2006.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2007.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2008.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2009.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2010.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2011.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2012.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2013.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2014.html.in maint: Typo fix for whether 2019-07-09 10:42:39 -05:00
news-2015.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-2016.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
news-ascii.xsl maint: Update references to ChangeLog* 2019-04-03 09:46:02 +02:00
news-html.xsl docs: news: add per-release links 2019-07-17 17:34:08 +02:00
news.rng docs: Move news.rng out of docs/schemas 2017-04-05 09:51:51 +02:00
news.xml news: mention new bochs display device 2019-07-19 11:09:19 +02:00
node.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
node.gif
nss.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
page.xsl docs: add advanced search capabilities 2019-04-11 15:20:17 +01:00
pci-hotplug.html.in docs: Advertise pcie-to-pci-bridge for use on q35 2019-06-20 10:03:22 +02:00
php.html.in docs: update all GIT repo examples to use https:// protocol 2018-03-21 14:48:01 +00:00
platforms.html.in docs: fix repology link for qemu-kvm package 2018-10-23 16:16:36 +01:00
python.html.in docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
reformat-news.py Remove all Author(s): lines from source file headers 2018-12-13 16:08:38 +00:00
remote.html.in remote: delete the avahi mDNS support 2019-06-21 12:59:42 +01:00
securityprocess.html.in docs: link to security.libvirt.org website 2018-03-16 17:05:56 +00:00
site.xsl docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
storage.html.in docs: RBD pool only supports raw volumes 2019-07-12 17:09:43 +02:00
structures.fig Remove trailing whitespace from all xfig files 2011-10-28 10:11:16 +01:00
subsite.xsl docs: switch to using HTML5 doctype declaration 2017-08-02 17:00:11 +01:00
support.html.in docs: Grammar and spelling fixes 2018-05-03 12:40:37 +01:00
testapi.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
testsuites.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
testtck.html.in Use https:// links for most sites 2017-10-16 10:22:34 +01:00
uri.html.in xen: encourage use of xen:///system URI as preferred format 2018-04-12 16:52:01 +01:00
virshcmdref.html.in docs: update all GIT repo examples to use https:// protocol 2018-03-21 14:48:01 +00:00
windows.html.in remote: delete the avahi mDNS support 2019-06-21 12:59:42 +01:00
wrapstring.xsl Generate HACKING from docs/hacking.html.in 2010-11-12 19:47:20 +01:00