On 3/26/19 11:55 AM, Daniel P. Berrangé wrote:
On Tue, Mar 26, 2019 at 01:13:51AM -0500, Eric Blake wrote:
> 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.
>
> 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 virDomainCheckpointHasMetadata
> virDomainSnapshotIsCurrent virDomainCheckpointIsCurrent
>
> Operate on a domain object to list all children:
> virDomainSnapshotNum (no counterpart, this is the old
> virDomainSnapshotListNames racy interface)
> virDomainSnapshotListAllSnapshots virDomainListCheckpoints
The snapshot API was actually virDomainListAllSnapshots.
For naming consistency I'd prefer to see "All" in the name of the
name API too eg virDomainListAllCheckpoints
Can do. That one's quite mechanical to fix.
>
> Operate on a child object to list descendents:
> virDomainSnapshotNumChildren (no counterpart, this is the old
> virDomainSnapshotListChildrenNames racy interface)
> virDomainSnapshotListAllChildren virDomainCheckpointListChildren
and virDomainCheckpointListAllChildren here too
Yep, consistency in both places makes sense.
> Operate on a domain to locate a particular child:
> virDomainSnapshotLookupByName virDomainCheckpointLookupByName
> virDomainHasCurrentSnapshot virDomainHasCurrentSnapshot
Presumably the second should be virDomainhasCurrentCheckpoint
Correct, will fix my commit message.
> virDomainSnapshotCurrent virDomainCheckpointCurrent
>
> 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(a)redhat.com>
> ---
> +++ b/include/libvirt/libvirt-domain.h
> @@ -1774,6 +1774,9 @@ typedef enum {
> VIR_DOMAIN_UNDEFINE_NVRAM = (1 << 2), /* Also remove any
> nvram file */
> VIR_DOMAIN_UNDEFINE_KEEP_NVRAM = (1 << 3), /* Keep nvram file */
> + VIR_DOMAIN_UNDEFINE_CHECKPOINTS_METADATA= (1 << 4),/* If last use of
domain,
> + then also remove any
> + checkpoint metadata */
Whitespace missing before the "=" and between ",/"
I'm not sure how best to fit things; then again, it looks like we don't
always try to hit 80 columns in the public headers, so I don't mind
adding the space.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org