On 07/10/2018 05:09 PM, Cole Robinson wrote:
This adds some generic virinterfaceobj code, roughly matching what
is used by other stateful drivers like network, storage, etc.
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
src/conf/virinterfaceobj.c | 105 +++++++++++++++++++++++++++++++++++++
src/conf/virinterfaceobj.h | 7 +++
src/libvirt_private.syms | 1 +
src/test/test_driver.c | 15 ++++++
4 files changed, 128 insertions(+)
diff --git a/src/conf/virinterfaceobj.c b/src/conf/virinterfaceobj.c
index a1d7346eb2..87ce188117 100644
--- a/src/conf/virinterfaceobj.c
+++ b/src/conf/virinterfaceobj.c
@@ -241,6 +241,111 @@ virInterfaceObjListFindByName(virInterfaceObjListPtr interfaces,
return obj;
}
2 blank lines
+#define MATCH(FLAG) (flags & (FLAG))
+static bool
+virInterfaceMatch(virInterfaceObjPtr obj,
virInterfaceObjMatch
+ unsigned int flags)
+{
+ /* filter by active state */
+ if (MATCH(VIR_CONNECT_LIST_INTERFACES_FILTERS_ACTIVE) &&
+ !((MATCH(VIR_CONNECT_LIST_INTERFACES_ACTIVE) &&
+ virInterfaceObjIsActive(obj)) ||
+ (MATCH(VIR_CONNECT_LIST_INTERFACES_INACTIVE) &&
+ !virInterfaceObjIsActive(obj))))
+ return false;
+
+ return true;
+}
+#undef MATCH
+
+
+struct virInterfaceObjListData {
+ virConnectPtr conn;
+ virInterfacePtr *ifaces;
+ virInterfaceObjListFilter filter;
+ unsigned int flags;
+ int nifaces;
+ bool error;
+};
+
+static int
+virInterfaceObjListPopulate(void *payload,
This follows the NetworkObj code and I'll just point that the naming is
still not common on what's done between:
virDomainObjListCollectIterator
virNetworkObjListPopulate
virNodeDeviceObjListExportCallback
virNWFilterBindingObjListCollectIterator
virSecretObjListExportCallback
virStoragePoolObjVolumeListExportCb
virStoragePoolObjListExportCb
Perhaps a common name could be a bite sized task. I never quite got to
where I wanted to get to with the common object code mainly because of
varying opinions and not having the energy to continue 0-).
With the virInterfaceObjMatch adjustment,
Reviewed-by: John Ferlan <jferlan(a)redhat.com>
John
[...]