summaryrefslogtreecommitdiff
path: root/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config.go')
-rw-r--r--config.go43
1 files changed, 29 insertions, 14 deletions
diff --git a/config.go b/config.go
index 81bfec4..4758b8e 100644
--- a/config.go
+++ b/config.go
@@ -9,11 +9,34 @@ import (
"os"
"path/filepath"
+ "go.wit.com/log"
"google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/encoding/prototext"
"google.golang.org/protobuf/reflect/protoreflect"
)
+func (c *Cluster) ConfigSave() error {
+ name := c.Name
+ if name == "" {
+ name = c.Uuid
+ }
+ fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), name+".pb")
+ cfgfile, err := os.OpenFile(fullname, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
+ defer cfgfile.Close()
+ if err != nil {
+ fmt.Println("open config file :", err)
+ return err
+ }
+ log.Info("ConfigSave()", fullname)
+ data, err := c.Marshal()
+ if err != nil {
+ fmt.Println("cluster Marshal() err:", err)
+ return err
+ }
+ fmt.Fprintln(cfgfile, data)
+ return nil
+}
+
// writes out the cluster information it seperate files
// to make it humanly possible to hand edit things as needed
func (c *OldCluster) ConfigSave() error {
@@ -34,20 +57,12 @@ func (c *OldCluster) ConfigSave() error {
for _, drop := range dcopy.Droplets {
drop.Current = nil
}
- if err := ConfigWriteJSON(dcopy, "droplets.json"); err != nil {
- fmt.Println("droplets.json write failed")
- return err
- }
if err := ConfigWriteTEXT(dcopy, "droplets.text"); err != nil {
fmt.Println("droplets.json write failed")
return err
}
c.configWriteDroplets()
- if err := ConfigWriteJSON(c.H, "hypervisors.json"); err != nil {
- fmt.Println("hypervisors.json write failed")
- return err
- }
if err := ConfigWriteTEXT(c.H, "hypervisors.text"); err != nil {
fmt.Println("hypervisors.json write failed")
return err
@@ -69,18 +84,18 @@ func (c *OldCluster) ConfigLoad() error {
return errors.New("It's not safe to run ConfigLoad() on a nil cluster")
}
- if data, err := loadFile("droplets.json"); err == nil {
- if err = protojson.Unmarshal(data, c.d); err != nil {
- fmt.Println("broken droplets.json config file")
+ if data, err := loadFile("droplets.text"); err == nil {
+ if err = prototext.Unmarshal(data, c.d); err != nil {
+ fmt.Println("broken droplets.text config file")
return err
}
} else {
return err
}
- if data, err := loadFile("hypervisors.json"); err == nil {
- if err = protojson.Unmarshal(data, c.H); err != nil {
- fmt.Println("broken hypervisors.json config file")
+ if data, err := loadFile("hypervisors.text"); err == nil {
+ if err = prototext.Unmarshal(data, c.H); err != nil {
+ fmt.Println("broken hypervisors.text config file")
return err
}
} else {