ready for great things!

This commit is contained in:
2021-09-09 20:49:33 +02:00
parent c2d111a928
commit 6c41ae2fd5
13 changed files with 427 additions and 77 deletions

50
src/libvirt/libvirt.go Normal file
View File

@@ -0,0 +1,50 @@
package libvirt
import (
log "bitsnthings.dev/overlord/src/log"
libvirt "libvirt.org/go/libvirt"
)
type Libvirt struct {
Hosts map[string]*libvirt.Connect
Guests map[string]map[string]libvirt.Domain
// Auth libvirt.ConnectAuth
// Flags libvirt.ConnectFlags
}
func New() Libvirt {
return Libvirt{
map[string]*libvirt.Connect{},
map[string]map[string]libvirt.Domain{},
}
}
func (virt *Libvirt) GetStatus() {
log.PrintLog(log.TRACE, "Getting libvirt cluster status.")
virt.getAllDomains()
log.PrintLog(log.INFO, "All domains in the cluster:")
for uri, doms := range virt.Guests {
log.PrintLog(log.INFO, "With uri: %s", uri)
for name, dom := range doms {
os, _ := dom.GetOSType()
log.PrintLog(log.INFO, "%s (%s)", name, os)
}
}
}
func (virt *Libvirt) Connect(cstr string) (*libvirt.Connect, error) {
conn, err := libvirt.NewConnect(cstr) //, &virt.Auth, virt.Flags)
if err != nil {
log.PrintLog(log.WARN, "Error connecting to libvirt host with uri: \"%s\"! %s",
cstr, err)
return conn, err
}
virt.Hosts[cstr] = conn
return conn, err
}
func (virt *Libvirt) ConnectMany(cstrs []string) {
for _, cstr := range cstrs {
virt.Connect(cstr)
}
}