summaryrefslogtreecommitdiff
path: root/configfiles.go
diff options
context:
space:
mode:
Diffstat (limited to 'configfiles.go')
-rw-r--r--configfiles.go52
1 files changed, 50 insertions, 2 deletions
diff --git a/configfiles.go b/configfiles.go
index b7999c5..00aaaa3 100644
--- a/configfiles.go
+++ b/configfiles.go
@@ -4,11 +4,12 @@ import (
"os"
"path/filepath"
"strings"
+ "time"
"go.wit.com/log"
)
-func readConfigFile(filename string) {
+func readDropletFile(filename string) {
// fmt.Fprintln(w, "GOT TEST?")
homeDir, _ := os.UserHomeDir()
fullname := filepath.Join(homeDir, ".config/virtigo/", filename)
@@ -39,8 +40,55 @@ func readConfigFile(filename string) {
me.droplets = append(me.droplets, d)
log.Log(EVENT, "NEW CONFIG DROPLET", d.Hostname, d.State)
} else {
- log.Info("not sure what to do here. duplicate", name, "in config file")
+ log.Info("not sure what to do here. duplicate droplet", name, "in config file")
}
}
}
+
+func readHypervisorFile(filename string) {
+ // fmt.Fprintln(w, "GOT TEST?")
+ homeDir, _ := os.UserHomeDir()
+ fullname := filepath.Join(homeDir, ".config/virtigo/", filename)
+ pfile, err := os.ReadFile(fullname)
+ if err != nil {
+ log.Info("No config file :", err)
+ // w.Write(pfile)
+ return
+ }
+
+ f := string(pfile)
+ for _, line := range strings.Split(f, "\n") {
+ fields := strings.Fields(line)
+ if len(fields) < 1 {
+ continue
+ }
+ name := fields[0]
+ h := addHypervisor(name)
+ if len(fields) < 2 || fields[1] != "active" {
+ h.Active = true
+ } else {
+ h.Active = false
+ }
+ }
+}
+
+func addHypervisor(name string) *HyperT {
+ var h *HyperT
+ h = findHypervisor(name)
+ if h != nil {
+ log.Info("not sure what to do here. duplicate hypervisor", name, "in config file")
+ return h
+ }
+ log.Log(EVENT, "Adding new hypervisor", name)
+ h = new(HyperT)
+ h.Hostname = name
+ h.Autoscan = true
+ h.Delay = 5 * time.Second
+ h.lastpoll = time.Now()
+ h.Scan = func() {
+ h.pollHypervisor()
+ }
+ me.hypers = append(me.hypers, h)
+ return h
+}