summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.go88
1 files changed, 37 insertions, 51 deletions
diff --git a/config.go b/config.go
index 639844d..1f75372 100644
--- a/config.go
+++ b/config.go
@@ -13,15 +13,8 @@ import (
"google.golang.org/protobuf/reflect/protoreflect"
)
-// save the events config file in both json and prototext
-func (e *Events) ConfigSave() error {
- if err := ConfigWriteJSON(e, "events.json"); err != nil {
- return err
- }
-
- return ConfigWriteTEXT(e, "events.text")
-}
-
+// writes out the cluster information it seperate files
+// to make it humanly possible to hand edit things as needed
func (c *Cluster) ConfigSave() error {
var d *Droplets
d = new(Droplets)
@@ -30,6 +23,10 @@ func (c *Cluster) ConfigSave() error {
fmt.Println("droplets.json write failed")
return err
}
+ if err := ConfigWriteTEXT(d, "newdroplets.text"); err != nil {
+ fmt.Println("droplets.json write failed")
+ return err
+ }
var h *Hypervisors
h = new(Hypervisors)
@@ -38,6 +35,10 @@ func (c *Cluster) ConfigSave() error {
fmt.Println("hypervisors.json write failed")
return err
}
+ if err := ConfigWriteTEXT(h, "newhypervisors.text"); err != nil {
+ fmt.Println("hypervisors.json write failed")
+ return err
+ }
var e *Events
e = new(Events)
@@ -46,60 +47,44 @@ func (c *Cluster) ConfigSave() error {
fmt.Println("newEvents.json write failed")
return err
}
+ if err := ConfigWriteTEXT(h, "newEvents.text"); err != nil {
+ fmt.Println("newEvents.json write failed")
+ return err
+ }
- return nil
-}
+ if err := ConfigWriteTEXT(c, "newCluster.text"); err != nil {
+ fmt.Println("newCluster.json write failed")
+ return err
+ }
-// read in the events log file
-// reads in from the prototext file
-// prototext file formats are not garrenteed to be stable. todo: hammer that out
-func (e *Events) ConfigRead() error {
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "events.text")
- data, err := os.ReadFile(fullname)
- if err != nil {
+ var newc Cluster
+ newc.Dirs = c.Dirs
+ newc.Droplets = nil
+ newc.Hypervisors = nil
+ newc.Events = nil
+ if err := ConfigWriteTEXT(&newc, "newSmallCluster.text"); err != nil {
+ fmt.Println("newSmallCluster.json write failed")
return err
}
- return prototext.Unmarshal(data, e)
+
+ return nil
}
-// get the list of droplets from the config file
-func (d *Droplets) ConfigRead() error {
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "droplets.json")
+func (c *Cluster) ConfigLoad() error {
+ if c == nil {
+ c = new(Cluster)
+ }
+ fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "newCluster.json")
data, err := os.ReadFile(fullname)
if err != nil {
+ // log.Info("open config file :", err)
return err
}
- return protojson.Unmarshal(data, d)
- /*
- err = d.UnmarshalJSON(data)
- if err != nil {
- return err
- }
- return nil
- */
+ return c.UnmarshalJSON(data)
}
-//func (e *Events) ConfigSave() error {
-// return ConfigWriteJSON(e, "events.json")
-//}
-
-// save the droplet settings in a config file
-// uses 'protojson.Format' which is more or less human readable
-func (d *Droplets) ConfigSave() error {
- return ConfigWriteJSON(d, "droplets.json")
- /*
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "droplets.json")
- cfgfile, err := os.OpenFile(fullname, os.O_RDWR|os.O_CREATE, 0666)
- defer cfgfile.Close()
- if err != nil {
- fmt.Println("open config file :", err)
- return err
- }
- text := protojson.Format(d)
- fmt.Fprintln(cfgfile, text)
- return nil
- */
-}
+// reads in from the prototext file
+// prototext file formats are not garrenteed to be stable. todo: hammer that out
func ConfigWriteJSON(a any, filename string) error {
fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), filename)
@@ -152,6 +137,7 @@ func WriteConfig(d *Droplets, h *Hypervisors, e *Events) bool {
return true
}
+
// read in events.json
func ReadEventsConfig() (*Events, error) {
e := new(Events)