summaryrefslogtreecommitdiff
path: root/config.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-10-26 07:28:19 -0500
committerJeff Carr <[email protected]>2024-10-26 07:28:19 -0500
commit9020957ee73741a3f120ff7fd9f9afcb517e02ed (patch)
tree44b280079987be31584218f6d684941879998454 /config.go
parent0dc393896c640d220a0825b56cc991e91963b7f9 (diff)
new config files
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'config.go')
-rw-r--r--config.go168
1 files changed, 0 insertions, 168 deletions
diff --git a/config.go b/config.go
deleted file mode 100644
index 9711a46..0000000
--- a/config.go
+++ /dev/null
@@ -1,168 +0,0 @@
-package main
-
-/*
- All the information is defined by protobuf files
-
- The config files written out by default into
- ~/.config/virtigo/
-
- protobuf definitions are by nature non-relational
- so each protobuf is written out as a seperate file.
-
- This seems like the simpilist way to handle this.
-*/
-
-import (
- "errors"
- "fmt"
- "os"
- "path/filepath"
- "time"
-
- pb "go.wit.com/lib/protobuf/virtbuf"
- "go.wit.com/log"
-)
-
-var ErrorNoFile error = errors.New("missing file")
-var ErrorParseJSON error = errors.New("invalid json")
-var ErrorParseXML error = errors.New("invalid xml")
-
-// something is wrong somewhere and sometimes the
-// protobuf json files get written out with garbage
-func cfgfile() error {
- err := readConfigFile("virtigo.json")
- if err == nil {
- return err
- }
- // test last config also parses
- err = readConfigFile("virtigo.json.last")
- if err == nil {
- return err
- }
-
- // try parsing event log
- e, err := pb.ReadEventsConfig()
- if err == nil {
- return err
- }
- me.events = e
- return nil
-}
-
-func readConfigFile(filename string) error {
- me.cluster = new(pb.Cluster)
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), filename)
- pfile, err := os.ReadFile(fullname)
- if err != nil {
- log.Info("open config file :", err)
- return err
- }
- err = me.cluster.UnmarshalJSON(pfile)
- if err != nil {
- log.Info("read json failed", err)
- os.Exit(-1)
- return err
- }
-
- // initialize each hypervisor
- for _, pbh := range me.cluster.Hypervisors {
- h := findHypervisor(pbh.Hostname)
- if h != nil {
- continue
- }
- // this is a new unknown droplet (not in the config file)
- h = new(HyperT)
- h.pb = pbh
-
- h.lastpoll = time.Now()
-
- me.hypers = append(me.hypers, h)
- log.Log(EVENT, "config new hypervisors", h.pb.Hostname)
- }
-
- var total int
- // initialize values for each droplet
- for _, pbd := range me.cluster.Droplets {
- d := findDroplet(pbd.Hostname)
- if d != nil {
- continue
- }
- // this is a new unknown droplet (not in the config file)
- d = new(DropletT)
- d.pb = pbd
- me.droplets = append(me.droplets, d)
- log.Log(EVENT, "config new droplet", d.pb.Hostname, d.pb.StartState, d.pb.PreferredHypervisor)
- total += 1
- }
- log.Log(EVENT, "Total Droplet count:", total)
-
- return nil
-}
-
-func writeConfigFile() {
- // Get the current time
- now := time.Now()
-
- // Format the time to match your desired format: YYYY.MM.DD.HHMMSS
- timestamp := now.Format("2006.01.02.150405")
-
- filename := "virtigo.json.new." + timestamp
- if !writeConfigFileTmp(filename) {
- log.Println("config file write error")
- os.Exit(-1)
- }
-
- origname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "virtigo.json")
- newname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "virtigo.json.old")
- err := os.Rename(origname, newname)
- if err != nil {
- log.Printf("rename fail: %s", err)
- os.Exit(-1)
- }
-
- if !writeConfigFileTmp("virtigo.json") {
- log.Println("config file write error")
- os.Exit(-1)
- }
-
- if err := me.events.ConfigRead(); err != nil {
- os.Exit(-1)
- }
-
- /*
- if me.cluster.Droplets.WriteConfigJSON() {
- os.Exit(-1)
- }
- if me.cluster.Droplets.WriteConfigTEXT() {
- os.Exit(-1)
- }
- */
-}
-
-func writeConfigFileTmp(filename string) bool {
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), filename)
- cfgfile, err := os.OpenFile(fullname, os.O_RDWR|os.O_CREATE, 0666)
- defer cfgfile.Close()
- if err != nil {
- log.Info("open config file :", err)
- return false
- }
- json := me.cluster.FormatJSON()
- fmt.Fprintln(cfgfile, json)
- log.Info("Write:", fullname, "OK")
- return true
-}
-
-func writeConfigFileDroplets() {
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "droplets.text")
- cfgfile, err := os.OpenFile(fullname, os.O_RDWR|os.O_CREATE, 0666)
- defer cfgfile.Close()
- if err != nil {
- log.Info("open config file :", err)
- return
- }
- // text := me.cluster.Droplets.FormatTEXT()
- text := me.cluster.FormatTEXT()
- fmt.Fprintln(cfgfile, text)
- log.Info("Write:", fullname, "OK")
-}