v3: https://www.redhat.com/archives/libvir-list/2017-June/msg00916.html Changes since v3 - honestly it's been too long to remember exactly what changes have taken place. This series provide the util/virobject changes and the implementation for nodedev, secret, interface, and network drivers/vir*obj's. The nwfilter is awaiting more upstream review and work and some more Storage Pool/Volume patches will be posted in conjunction with these. These changes also use the rwlocks Michal recently added to virobject as the means to provide locks for the LookupHash table(s). Although I understand it's not the preference of one reviewer, I've kept with the virObject model. If that still doesn't pass muster and someone else wants to create some other mechanism to combine the existing drivers in a more sane manner, then have at it. This is the model I've chosen. I personally don't see the value in just a shim API. This set of patches moves away from using a strict "uuid/name" designation in favor of using "key1" and "key2". While some may find that "too generic", I think that's the whole purpose of it. After some soul searching I feel using "name" or "uuid" is too restrictive and lends more towards the shim API model. Besides for some consumers they don't have a uuid (nodedev, interface, and nwfilter). In the long run it doesn't matter whether it's a uuid, name, or whatever as long as it's a character string. FWIW: Patches 1, 12, and 16 could be easily separated out, but since I was working in the area - they were added here as well. John Ferlan (17): util: Use VIR_ERROR instead of VIR_WARN util: Introduce virObjectLookupKeys util: Introduce virObjectLookupHash util: Introduce virObjectLookupKeys*Active API's util: Introduce virObjectLookupHash{Add|Remove} util: Introduce virObjectLookupHashFind[Locked] util: Introduce virObjectLookupHashForEach util: Introduce virObjectLookupHashSearch[Locked] nodedev: Use virObjectLookup{Keys|Hash} secret: Use virObjectLookup{Keys|Hash} util: Introduce virObjectLookupHashClone Revert "interface: Consume @def in virInterfaceObjNew" interface: Use virObjectLookup{Keys|Hash} test: Clean up test driver Interface interactions util: Introduce virObjectLookupHashPrune network: Fix virNetworkObjBridgeInUse return type network: Use virObjectLookup{Keys|Hash} src/conf/virinterfaceobj.c | 301 ++++++++++---------- src/conf/virnetworkobj.c | 293 ++++++-------------- src/conf/virnetworkobj.h | 5 +- src/conf/virnodedeviceobj.c | 286 ++++++------------- src/conf/virsecretobj.c | 263 +++++------------- src/libvirt_private.syms | 15 + src/test/test_driver.c | 55 +--- src/util/virobject.c | 658 +++++++++++++++++++++++++++++++++++++++++++- src/util/virobject.h | 119 ++++++++ tests/networkxml2conftest.c | 4 +- 10 files changed, 1190 insertions(+), 809 deletions(-) -- 2.9.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list