Displaying 7 results from an estimated 7 matches for "registerclosecallback".
2017 May 17
2
Re: Callback re-registration after libvirtd restart
...ibvirt_close_callback(conn *libvirt.Connect, reason
libvirt.ConnectCloseReason){
log.Printf("close callback: %+v", reason)
}
func event_listen() {
log.Printf("event_listen %s", conf.Libvirt.LocalUrl)
hv, err := libvirt.NewConnect(conf.Libvirt.LocalUrl)
err = hv.RegisterCloseCallback(libvirt_close_callback)
if err != nil {
log.Printf("unable to register close callback")
return
}
...
The callback fires only when I kill my app,
^CGot signal:%!(EXTRA syscall.Signal=interrupt)
close callback: 0
but not when I restart libvirtd. I tried using both...
2017 May 17
2
Re: Callback re-registration after libvirtd restart
...){
> > log.Printf("close callback: %+v", reason)
> > }
> >
> > func event_listen() {
> > log.Printf("event_listen %s", conf.Libvirt.LocalUrl)
> > hv, err := libvirt.NewConnect(conf.Libvirt.LocalUrl)
> >
> > err = hv.RegisterCloseCallback(libvirt_close_callback)
> > if err != nil {
> > log.Printf("unable to register close callback")
> > return
> > }
> > ...
> >
> > The callback fires only when I kill my app,
>
> Looks like you are missing a call to lib...
2017 May 17
2
Callback re-registration after libvirtd restart
Hi all,
I'm using libvirt-go and I following code to listen for lifecycle events:
func event_listen() {
log.Printf("event_listen %s", conf.Libvirt.LocalUrl)
hv, err := libvirt.NewConnect(conf.Libvirt.LocalUrl)
lifecycleCallback := func(c *libvirt.Connect, d *libvirt.Domain, event
*libvirt.DomainEventLifecycle) {
event_message(c, d, "lifecycle", event)
2017 May 17
0
Re: Callback re-registration after libvirtd restart
...t error. But
> the callback is not working anymore.
>
> My question is, how can I detect hv reconnect (I guess it's happening in
> background) so I know when to reinitialize callbacks?
There is a separate event you can listen to that notifies when the connection
is closed. See the RegisterCloseCallback() method on the Connect object.
Basically register a callback there, and when it fires, unregister your
existing domain event callbacks, and close your existing Connect object
handle. Then fire a goroutine that loops once every few seconds trying
to open a new Connect object, and when that succeed...
2017 May 17
0
Re: Callback re-registration after libvirtd restart
...thub.com/libvirt/libvirt-go"
"log"
)
func libvirt_close_callback(conn *libvirt.Connect, reason libvirt.ConnectCloseReason) {
log.Printf("In here")
}
func main() {
libvirt.EventRegisterDefaultImpl()
hv, err := libvirt.NewConnect("qemu:///session")
err = hv.RegisterCloseCallback(libvirt_close_callback)
if err != nil {
log.Printf("unable to register close callback")
return
}
for {
libvirt.EventRunDefaultImpl()
}
}
Printing out "In here" immediately when I kill libvirtd
Regards,
Daniel
--
|: https://berrange.com -o- https://www.fli...
2017 May 17
0
Re: Callback re-registration after libvirtd restart
...reason
> libvirt.ConnectCloseReason){
> log.Printf("close callback: %+v", reason)
> }
>
> func event_listen() {
> log.Printf("event_listen %s", conf.Libvirt.LocalUrl)
> hv, err := libvirt.NewConnect(conf.Libvirt.LocalUrl)
>
> err = hv.RegisterCloseCallback(libvirt_close_callback)
> if err != nil {
> log.Printf("unable to register close callback")
> return
> }
> ...
>
> The callback fires only when I kill my app,
Looks like you are missing a call to libvirt.EventRegisterDefaultImpl(),
which must...
2017 May 17
1
Re: Callback re-registration after libvirtd restart
...llback(conn *libvirt.Connect, reason
> libvirt.ConnectCloseReason) {
> log.Printf("In here")
> }
>
> func main() {
> libvirt.EventRegisterDefaultImpl()
>
> hv, err := libvirt.NewConnect("qemu:///session")
>
> err = hv.RegisterCloseCallback(libvirt_close_callback)
> if err != nil {
> log.Printf("unable to register close callback")
> return
> }
>
> for {
> libvirt.EventRunDefaultImpl()
> }
>
> }
>
>
> Printin...