[libvirt] [PATCH 09/16] snapshot: Refactor list filtering
Eric Blake
eblake at redhat.com
Thu Mar 21 18:25:06 UTC 2019
On 3/20/19 4:40 PM, John Ferlan wrote:
>
>
> On 3/20/19 1:40 AM, Eric Blake wrote:
>> Separate the algorithm for which list members to vist (which is
>> generic and can be shared with checkpoints, provided that checkpoints
>> pick the same bit values for some of its flags) from the decision on
>> which members to return (which is specific to snapshots). The typedef
>> for the callback function feels a bit heavy here, but will make it
>> easier to move the common portions in a later patch.
>>
>> Signed-off-by: Eric Blake <eblake at redhat.com>
>> ---
>> src/conf/virdomainsnapshotobjlist.h | 4 ++
>> src/conf/virdomainsnapshotobjlist.c | 60 ++++++++++++++++++-----------
>> 2 files changed, 42 insertions(+), 22 deletions(-)
>>
>
> Reviewed-by: John Ferlan <jferlan at redhat.com>
I'm squashing in this code motion as well; missed in 9b75154c
(basically, the filter flags are a functionality of the listing, not of
the XML - made more obvious by this patch splitting out the filter
callback as the client of those macros).
diff --git i/src/conf/snapshot_conf.h w/src/conf/snapshot_conf.h
index b13a500af4..937310efac 100644
--- i/src/conf/snapshot_conf.h
+++ w/src/conf/snapshot_conf.h
@@ -133,29 +133,6 @@ int
virDomainSnapshotAlignDisks(virDomainSnapshotDefPtr snapshot,
int default_snapshot,
bool require_match);
-# define VIR_DOMAIN_SNAPSHOT_FILTERS_METADATA \
- (VIR_DOMAIN_SNAPSHOT_LIST_METADATA | \
- VIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA)
-
-# define VIR_DOMAIN_SNAPSHOT_FILTERS_LEAVES \
- (VIR_DOMAIN_SNAPSHOT_LIST_LEAVES | \
- VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES)
-
-# define VIR_DOMAIN_SNAPSHOT_FILTERS_STATUS \
- (VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE | \
- VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE | \
- VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY)
-
-# define VIR_DOMAIN_SNAPSHOT_FILTERS_LOCATION \
- (VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL | \
- VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL)
-
-# define VIR_DOMAIN_SNAPSHOT_FILTERS_ALL \
- (VIR_DOMAIN_SNAPSHOT_FILTERS_METADATA | \
- VIR_DOMAIN_SNAPSHOT_FILTERS_LEAVES | \
- VIR_DOMAIN_SNAPSHOT_FILTERS_STATUS | \
- VIR_DOMAIN_SNAPSHOT_FILTERS_LOCATION)
-
bool virDomainSnapshotDefIsExternal(virDomainSnapshotDefPtr def);
bool virDomainSnapshotIsExternal(virDomainSnapshotObjPtr snap);
diff --git i/src/conf/virdomainsnapshotobjlist.h
w/src/conf/virdomainsnapshotobjlist.h
index c7d4d265cb..8975f1a8dd 100644
--- i/src/conf/virdomainsnapshotobjlist.h
+++ w/src/conf/virdomainsnapshotobjlist.h
@@ -74,6 +74,29 @@ int
virDomainSnapshotForEach(virDomainSnapshotObjListPtr snapshots,
void *data);
int virDomainSnapshotUpdateRelations(virDomainSnapshotObjListPtr
snapshots);
+# define VIR_DOMAIN_SNAPSHOT_FILTERS_METADATA \
+ (VIR_DOMAIN_SNAPSHOT_LIST_METADATA | \
+ VIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA)
+
+# define VIR_DOMAIN_SNAPSHOT_FILTERS_LEAVES \
+ (VIR_DOMAIN_SNAPSHOT_LIST_LEAVES | \
+ VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES)
+
+# define VIR_DOMAIN_SNAPSHOT_FILTERS_STATUS \
+ (VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE | \
+ VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE | \
+ VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY)
+
+# define VIR_DOMAIN_SNAPSHOT_FILTERS_LOCATION \
+ (VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL | \
+ VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL)
+
+# define VIR_DOMAIN_SNAPSHOT_FILTERS_ALL \
+ (VIR_DOMAIN_SNAPSHOT_FILTERS_METADATA | \
+ VIR_DOMAIN_SNAPSHOT_FILTERS_LEAVES | \
+ VIR_DOMAIN_SNAPSHOT_FILTERS_STATUS | \
+ VIR_DOMAIN_SNAPSHOT_FILTERS_LOCATION)
+
int virDomainListSnapshots(virDomainSnapshotObjListPtr snapshots,
virDomainSnapshotObjPtr from,
virDomainPtr dom,
--
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/20190321/96784ef5/attachment-0001.sig>
More information about the libvir-list
mailing list