53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package events
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"libvirt.org/go/libvirt"
|
|
)
|
|
|
|
func agentLifecycle(c *libvirt.Connect, d *libvirt.Domain, event *libvirt.DomainEventAgentLifecycle) {
|
|
println(event.State)
|
|
println(event.Reason)
|
|
|
|
}
|
|
|
|
func graphics(c *libvirt.Connect, d *libvirt.Domain, event *libvirt.DomainEventGraphics) {
|
|
println(event.String())
|
|
}
|
|
|
|
func reboot(c *libvirt.Connect, d *libvirt.Domain) {
|
|
|
|
}
|
|
|
|
func watchdog(c *libvirt.Connect, d *libvirt.Domain, event *libvirt.DomainEventWatchdog) {
|
|
println(event.String())
|
|
}
|
|
|
|
func Server() {
|
|
err := libvirt.EventRegisterDefaultImpl()
|
|
if err != nil {
|
|
log.Fatalf("Échec d'EventRegisterDefaultImpl: %v", err)
|
|
os.Exit(0)
|
|
}
|
|
|
|
conn, err := libvirt.NewConnect("qemu:///system")
|
|
if err != nil {
|
|
log.Println("Connexion Error")
|
|
}
|
|
defer conn.Close()
|
|
|
|
conn.SetKeepAlive(5, 3)
|
|
|
|
conn.DomainEventAgentLifecycleRegister(nil, agentLifecycle)
|
|
conn.DomainEventGraphicsRegister(nil, graphics)
|
|
conn.DomainEventLifecycleRegister(nil, Lifecyle)
|
|
conn.DomainEventRebootRegister(nil, reboot)
|
|
conn.DomainEventWatchdogRegister(nil, watchdog)
|
|
|
|
for {
|
|
libvirt.EventRunDefaultImpl()
|
|
}
|
|
}
|