diff --git a/add.go b/add.go index c0a10b4..6356ede 100644 --- a/add.go +++ b/add.go @@ -62,6 +62,13 @@ func (c *OldCluster) FindDropletByName(name string) *Droplet { } func (c *OldCluster) FindDropletByUuid(id string) *Droplet { + log.Info("START FIND", id) + loop := c.d.All() // get the list of droplets + for loop.Scan() { + d := loop.Next() + log.Info("droplet:", d.Hostname, d.Uuid) + } + log.Info("END FIND", id) return c.d.FindByUuid(id) } 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 {