diff options
Diffstat (limited to 'configfiles.go')
| -rw-r--r-- | configfiles.go | 52 |
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 +} |
