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