[libvirt] [PATCH v6 7/9] backup: Introduce virDomainCheckpoint APIs
Eric Blake
eblake at redhat.com
Tue Mar 26 17:49:43 UTC 2019
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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20190326/13aeb8da/attachment-0001.sig>
More information about the libvir-list
mailing list