summaryrefslogtreecommitdiff
path: root/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config.go')
-rw-r--r--config.go101
1 files changed, 45 insertions, 56 deletions
diff --git a/config.go b/config.go
index 5528731..1d7ca3d 100644
--- a/config.go
+++ b/config.go
@@ -47,14 +47,11 @@ func (c *Cluster) ConfigSave() error {
return err
}
- var e *Events
- e = new(Events)
- e.Events = c.Events
- if err := ConfigWriteJSON(e, "events.json"); err != nil {
+ if err := ConfigWriteJSON(c.E, "events.json"); err != nil {
fmt.Println("events.json write failed")
return err
}
- if err := ConfigWriteTEXT(e, "events.text"); err != nil {
+ if err := ConfigWriteTEXT(c.E, "events.text"); err != nil {
fmt.Println("events.json write failed")
return err
}
@@ -68,7 +65,7 @@ func (c *Cluster) ConfigSave() error {
newc.Dirs = c.Dirs
newc.Droplets = nil
newc.Hypervisors = nil
- newc.Events = nil
+ newc.E = nil
if err := ConfigWriteTEXT(&newc, "cluster.text"); err != nil {
fmt.Println("cluster.json write failed")
return err
@@ -88,45 +85,6 @@ func backupConfigFiles() error {
return backupFiles(srcDir, destDir)
}
-/*
-func (c *Cluster) ConfigLoadOld2() error {
- if c == nil {
- return errors.New("It's not safe to run ConfigLoad() on a nil cluster")
- }
-
- // erase or zero fields that shouldn't ever be written to the config file
- c.BlankFields()
-
- // load the cluster config file
- if data, err := loadFile("virtigo.json"); err == nil {
- if err = protojson.Unmarshal(data, c); err != nil {
- fmt.Println("broken cluster.json config file")
- fmt.Println(err)
- return errors.New("cluster.json file is broken")
- }
- } else {
- return err
- }
-
- var e *Events
- e = new(Events)
- // load the events config file
- if data, err := loadFile("events.json"); err == nil {
- if err = protojson.Unmarshal(data, e); err != nil {
- fmt.Println("broken events.json config file")
- return err
- }
- } else {
- return err
- }
- // copy them over. is this needed? does the memory free otherwise?
- for _, a := range e.Events {
- c.Events = append(c.Events, a)
- }
- return nil
-}
-*/
-
func (c *Cluster) ConfigLoad() error {
if c == nil {
return errors.New("It's not safe to run ConfigLoad() on a nil cluster")
@@ -177,20 +135,51 @@ func (c *Cluster) ConfigLoad() error {
c.Hypervisors = append(c.Hypervisors, a)
}
- var e *Events
- e = new(Events)
+ if err := c.loadEvents(); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (c *Cluster) loadEvents() error {
+ var data []byte
+ var err error
+
+ if c == nil {
+ fmt.Println("cluster == nil")
+ os.Exit(-1)
+ }
+
+ if c.E == nil {
+ fmt.Println("cluster.E == nil")
+ c.E = new(Events)
+ }
+
+ if c.E == nil {
+ fmt.Println("cluster.E == nil")
+ os.Exit(-1)
+ }
+
// load the events config file
- if data, err := loadFile("events.json"); err == nil {
- if err = protojson.Unmarshal(data, e); err != nil {
- fmt.Println("broken events.json config file")
- return err
- }
- } else {
+ if data, err = loadFile("events.json"); err != nil {
+ fmt.Println("broken events.json config file")
return err
}
- // copy them over. is this needed? does the memory free otherwise?
- for _, a := range e.Events {
- c.Events = append(c.Events, a)
+
+ err = protojson.Unmarshal(data, c.E)
+ if err != nil {
+ fmt.Println("broken events.json config file")
+ // json load failed. try loading prototext
+ if data, err = loadFile("events.text"); err != nil {
+ fmt.Println("broken events.text config file")
+ fmt.Println(err)
+ return errors.New("events.text file is broken")
+ }
+ if err = prototext.Unmarshal(data, c.E); err != nil {
+ fmt.Println("broken events.text config file")
+ fmt.Println(err)
+ return errors.New("events.text file is broken")
+ }
}
return nil
}