
On 01/07/2014 10:07 AM, John Ferlan wrote:
The intro comments to 'virObjectEventStateRegisterID()' need to be adjusted to remove '@name' and '@id'.
Will do.
Same for 'virObjectEventCallbackLookup()' - sadly missed in patch 7, but I was looking for @name and @id now...
I actually caught that in patch 7 in time (but managed to botch the testsuite in the process of amending that patch).
Leaving only 'virObjectEventNew()' as the lone API that cares about 'id' and 'name', but doesn't utilize. Should that be noted somewhere? Since 'meta.name' and 'meta.id' aren't used anywhere, do they even need to be saved... Would save an alloc/free for name.
virObjectEvent DOES care about id and name - the dispatcher function has to reconstruct the virDomainPtr for handing to the callback function (see virDomainEventDispatchDefaultFunc in domain_event.c). So meta is still important for events, just not for callbacks. But if you found it confusing, then it can't hurt for me to enhance the commit message :)
Should the existing 'testDomainCreateXMLMixed()' be kept as is? And then add a 'testDomainDefineXMLMixed()'? At the very least the name should probably be changed since other test functions distinguish Define & Create in their names.
The test is covering whether an event happens when a domain is created (whether created as transient, or changed from offline to online for persistent); but to register an event at all, the domain already has to exist. When I first wrote the entire function for this patch, I used 'define' to make the domain exist, then register events, then 'create' to see the creation event; but it turned up other bugs, which I then rebased and fixed first, using the portions of the test that worked to expose those problems. But when rebasing, I had to first test create as transient, register, then destroy, then re-create, to avoid tripping the bug fixed in this patch. I added more commentary in my commit message :)
ACK in general though.
Okay, here's what I squashed in when pushing. diff --git i/src/conf/object_event.c w/src/conf/object_event.c index c4aedd9..b01ffe5 100644 --- i/src/conf/object_event.c +++ w/src/conf/object_event.c @@ -774,8 +774,6 @@ virObjectEventStateFlush(virObjectEventStatePtr state) * @conn: connection to associate with callback * @state: domain event state * @uuid: uuid of the object for event filtering - * @name: name of the object for event filtering - * @id: id of the object for event filtering, or 0 * @klass: the base event class * @eventID: ID of the event type to register for * @cb: function to invoke when event occurs diff --git i/src/conf/object_event_private.h w/src/conf/object_event_private.h index 76bd6d1..571fc40 100644 --- i/src/conf/object_event_private.h +++ w/src/conf/object_event_private.h @@ -69,6 +69,8 @@ virObjectEventNew(virClassPtr klass, int eventID, int id, const char *name, - const unsigned char *uuid); + const unsigned char *uuid) + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(5) + ATTRIBUTE_NONNULL(6); #endif -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org