summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--change.go4
-rw-r--r--config.go169
-rw-r--r--helpers.go79
3 files changed, 83 insertions, 169 deletions
diff --git a/change.go b/change.go
index 0c4797f..f7e57a3 100644
--- a/change.go
+++ b/change.go
@@ -186,8 +186,8 @@ func (c *Cluster) DropletMoved(d *Droplet, newh *Hypervisor) error {
e.Start = timestamppb.New(now)
c.Events = append(c.Events, e)
-
+
// update the droplet record
- d.CurrentHypervisor = newh.Hostname
+ d.CurrentHypervisor = newh.Hostname
return nil
}
diff --git a/config.go b/config.go
index b95ee16..5528731 100644
--- a/config.go
+++ b/config.go
@@ -88,6 +88,7 @@ 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")
@@ -124,6 +125,7 @@ func (c *Cluster) ConfigLoadOld2() error {
}
return nil
}
+*/
func (c *Cluster) ConfigLoad() error {
if c == nil {
@@ -239,170 +241,3 @@ func ConfigWriteTEXT(a any, filename string) error {
fmt.Fprintln(cfgfile, text)
return nil
}
-
-/*
-func WriteConfig(d *Droplets, h *Hypervisors, e *Events) bool {
- if !d.WriteConfigJSON() {
- return false
- }
- if !d.WriteConfigTEXT() {
- return false
- }
-
- if err := e.WriteConfigJSON(); err != nil {
- return false
- }
- if err := e.WriteConfigTEXT(); err != nil {
- return false
- }
- return true
-}
-
-// read in events.json
-func ReadEventsConfig() (*Events, error) {
- e := new(Events)
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "events.json")
- data, err := os.ReadFile(fullname)
- if err != nil {
- // log.Info("open config file :", err)
- return nil, err
- }
- err = e.UnmarshalJSON(data)
- if err != nil {
- // log.Info("read json failed", err)
- return nil, err
- }
-
- return e, nil
-}
-
-// export as json
-func (e *Events) WriteConfigJSON() error {
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "events.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 := e.FormatJSON()
- fmt.Fprintln(cfgfile, text)
- fmt.Println("Write:", fullname, "OK")
- return nil
-}
-
-// export as prototext
-func (e *Events) WriteConfigTEXT() error {
- fullname := filepath.Join(os.Getenv("VIRTIGO_HOME"), "events.text")
- 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 := e.FormatTEXT()
- fmt.Fprintln(cfgfile, text)
- fmt.Println("Write:", fullname, "OK")
- return nil
-}
-
-// export as json
-func (d *Droplets) WriteConfigJSON() bool {
- 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 false
- }
- text := d.FormatJSON()
- fmt.Fprintln(cfgfile, text)
- fmt.Println("Write:", fullname, "OK")
- return true
-}
-
-// export as prototext
-func (d *Droplets) WriteConfigTEXT() bool {
- 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 {
- fmt.Println("open config file :", err)
- return false
- }
- text := d.FormatTEXT()
- fmt.Fprintln(cfgfile, text)
- fmt.Println("Write:", fullname, "OK")
- return true
-}
-*/
-
-// human readable JSON
-func (c *Cluster) FormatJSON() string {
- return protojson.Format(c)
-}
-
-func (d *Droplets) FormatJSON() string {
- return protojson.Format(d)
-}
-
-func (d *Droplet) FormatJSON() string {
- return protojson.Format(d)
-}
-
-func (e *Events) FormatJSON() string {
- return protojson.Format(e)
-}
-
-func (h *Hypervisors) FormatJSON() string {
- return protojson.Format(h)
-}
-
-// apparently this isn't supposed to be used?
-// https://protobuf.dev/reference/go/faq/#unstable-text
-// this is a shame because this is much nicer output than JSON Format()
-func (c *Cluster) FormatTEXT() string {
- return prototext.Format(c)
-}
-
-func (d *Droplets) FormatTEXT() string {
- return prototext.Format(d)
-}
-
-func (e *Events) FormatTEXT() string {
- return prototext.Format(e)
-}
-
-// marshal
-func (c *Cluster) MarshalJSON() ([]byte, error) {
- return protojson.Marshal(c)
-}
-
-func (d *Droplets) MarshalJSON() ([]byte, error) {
- return protojson.Marshal(d)
-}
-
-func (d *Droplet) MarshalJSON() ([]byte, error) {
- return protojson.Marshal(d)
-}
-
-func (e *Events) MarshalJSON() ([]byte, error) {
- return protojson.Marshal(e)
-}
-
-// unmarshal
-func (c *Cluster) UnmarshalJSON(data []byte) error {
- return protojson.Unmarshal(data, c)
-}
-
-func (d *Droplets) UnmarshalJSON(data []byte) error {
- return protojson.Unmarshal(data, d)
-}
-
-func (d *Droplet) UnmarshalJSON(data []byte) error {
- return protojson.Unmarshal(data, d)
-}
-
-func (e *Events) UnmarshalJSON(data []byte) error {
- return protojson.Unmarshal(data, e)
-}
diff --git a/helpers.go b/helpers.go
new file mode 100644
index 0000000..49f8cfb
--- /dev/null
+++ b/helpers.go
@@ -0,0 +1,79 @@
+package virtbuf
+
+// functions to import and export the protobuf
+// data to and from config files
+
+import (
+ "google.golang.org/protobuf/encoding/protojson"
+ "google.golang.org/protobuf/encoding/prototext"
+)
+
+// human readable JSON
+func (c *Cluster) FormatJSON() string {
+ return protojson.Format(c)
+}
+
+func (d *Droplets) FormatJSON() string {
+ return protojson.Format(d)
+}
+
+func (d *Droplet) FormatJSON() string {
+ return protojson.Format(d)
+}
+
+func (e *Events) FormatJSON() string {
+ return protojson.Format(e)
+}
+
+func (h *Hypervisors) FormatJSON() string {
+ return protojson.Format(h)
+}
+
+// apparently this isn't supposed to be used?
+// https://protobuf.dev/reference/go/faq/#unstable-text
+// this is a shame because this is much nicer output than JSON Format()
+func (c *Cluster) FormatTEXT() string {
+ return prototext.Format(c)
+}
+
+func (d *Droplets) FormatTEXT() string {
+ return prototext.Format(d)
+}
+
+func (e *Events) FormatTEXT() string {
+ return prototext.Format(e)
+}
+
+// marshal
+func (c *Cluster) MarshalJSON() ([]byte, error) {
+ return protojson.Marshal(c)
+}
+
+func (d *Droplets) MarshalJSON() ([]byte, error) {
+ return protojson.Marshal(d)
+}
+
+func (d *Droplet) MarshalJSON() ([]byte, error) {
+ return protojson.Marshal(d)
+}
+
+func (e *Events) MarshalJSON() ([]byte, error) {
+ return protojson.Marshal(e)
+}
+
+// unmarshal
+func (c *Cluster) UnmarshalJSON(data []byte) error {
+ return protojson.Unmarshal(data, c)
+}
+
+func (d *Droplets) UnmarshalJSON(data []byte) error {
+ return protojson.Unmarshal(data, d)
+}
+
+func (d *Droplet) UnmarshalJSON(data []byte) error {
+ return protojson.Unmarshal(data, d)
+}
+
+func (e *Events) UnmarshalJSON(data []byte) error {
+ return protojson.Unmarshal(data, e)
+}