On Wed, Aug 21, 2013 at 12:36:06PM +0300, Alexandr wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > 21.08.2013 09:46, Alexandr пишет: > > 21.08.2013 09:32, Martin Kletzander пишет: > >> On Wed 21 Aug 2013 01:03:37 AM CEST, Alexandr wrote: > >>> > >>> good day. i trying to make callback function for > >>> VIR_DOMAIN_EVENT_ID_LIFECYCLE, i have successfully registering > >>> callback, but it never called, i need to know when domain > >>> started, stopped or crashed, i have write following code > >>> > >>> static int domain_event_handler(virConnectPtr conn, > >>> virDomainPtr dom, int event, int detail, void * opaque) { > >>> switch(event) { } return 0; } > >>> > >>> ..... int callback = > >>> virConnectDomainEventRegisterAny(libvirt_connection, NULL, > >>> VIR_DOMAIN_EVENT_ID_LIFECYCLE, > >>> VIR_DOMAIN_EVENT_CALLBACK(domain_event_handler), NULL, NULL); > >>> if(callback == -1) { std::cout<<"Error: failed to register > >>> domain event handle callback\n"; return -1; } ..... > >>> > >>> > >>> but "domain_event_handler" is never called, what is wrong here > >>> ? > > > >> Are you running an event loop? You can have a look at our > >> examples [1] and see what's being done there. Especially note > >> the virEventRunDefaultImpl() [2] there. > > > >> Martin > > > >> [1] > >> http://libvirt.org/git/?p=libvirt.git;a=blob;f=examples/domain-events/events-c/event-test.c;h=52aa3d08d7326e422c12a8521717c3d55b2d8afd;hb=HEAD > > > >> > > > > [2] > >> http://libvirt.org/git/?p=libvirt.git;a=blob;f=examples/domain-events/events-c/event-test.c;h=52aa3d08d7326e422c12a8521717c3d55b2d8afd;hb=HEAD#l611 > > > >> > > > > oh..., i missed it, thx for hint and sorry for stupid questions . > > now it's working except for events from other connections, for example > i want to handle domain started by virt-manager, now i do not have > event when it's started, is exists any api to handle this events, or i > need to implement internal polling of domains state in my application ? The events system reports all lifecycle events, regardless of which connection triggered them. If you're not seeing events from domains started by virt-manager then your almost certainly connecting to a different libvirt URI than virt-manager is using. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| _______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users