diff --git a/addDroplet.go b/addDroplet.go index 7c0bb59..7903348 100644 --- a/addDroplet.go +++ b/addDroplet.go @@ -111,12 +111,12 @@ func updateDroplet(d *pb.Droplet, domcfg *libvirtxml.Domain) ([]*pb.Event, error // OS Type: &{Arch:x86_64 Machine:pc-i440fx-5.2 Type:hvm} t := domcfg.OS.Type if d.QemuArch != t.Arch { - e := NewChangeEvent(d, "Droplet.QemuArch", d.QemuArch, t.Arch) + e := d.NewChangeEvent("Droplet.QemuArch", d.QemuArch, t.Arch) alle = append(alle, e) d.QemuArch = t.Arch } if d.QemuMachine != t.Machine { - e := NewChangeEvent(d, "Droplet.QemuMachine", d.QemuMachine, t.Machine) + e := d.NewChangeEvent("Droplet.QemuMachine", d.QemuMachine, t.Machine) alle = append(alle, e) d.QemuMachine = t.Machine } @@ -126,7 +126,7 @@ func updateDroplet(d *pb.Droplet, domcfg *libvirtxml.Domain) ([]*pb.Event, error if d.Cpus != int64(domcfg.VCPU.Value) { // fmt.Printf("cpus changed. VCPU = %+v\n", domcfg.VCPU) fmt.Printf("cpus changed. from %d to %d\n", d.Cpus, domcfg.VCPU.Value) - alle = append(alle, NewChangeEvent(d, "Droplet.Cpus", d.Cpus, domcfg.VCPU.Value)) + alle = append(alle, d.NewChangeEvent("Droplet.Cpus", d.Cpus, domcfg.VCPU.Value)) d.Cpus = int64(domcfg.VCPU.Value) } @@ -146,7 +146,7 @@ func updateDroplet(d *pb.Droplet, domcfg *libvirtxml.Domain) ([]*pb.Event, error // print out, but ignore the port number d.SpicePort = int64(s.Port) fmt.Printf("Spice Port set to = %d\n", s.Port) - alle = append(alle, NewChangeEvent(d, "Droplet.SpicePort", d.SpicePort, s.Port)) + alle = append(alle, d.NewChangeEvent("Droplet.SpicePort", d.SpicePort, s.Port)) } } } @@ -324,7 +324,7 @@ func updateNetwork(d *pb.Droplet, domcfg *libvirtxml.Domain) ([]*pb.Event, error } eth.Name = brname d.Networks = append(d.Networks, eth) - allEvents = append(allEvents, NewChangeEvent(d, "Droplet NewNetwork", "", mac+" "+brname)) + allEvents = append(allEvents, d.NewChangeEvent("Droplet NewNetwork", "", mac+" "+brname)) } } diff --git a/change.go b/change.go deleted file mode 100644 index 2352d38..0000000 --- a/change.go +++ /dev/null @@ -1,136 +0,0 @@ -package main - -import ( - // "reflect" - - "errors" - "fmt" - "time" - - "google.golang.org/protobuf/types/known/anypb" - "google.golang.org/protobuf/types/known/timestamppb" - "google.golang.org/protobuf/types/known/wrapperspb" - - pb "go.wit.com/lib/protobuf/virtbuf" - "go.wit.com/log" -) - -func convertToAnypb(x any) *anypb.Any { - switch v := x.(type) { - case int64: - var a *anypb.Any - a, _ = anypb.New(wrapperspb.Int64(x.(int64))) - return a - case string: - var a *anypb.Any - a, _ = anypb.New(wrapperspb.String(x.(string))) - return a - case int: - var a *anypb.Any - a, _ = anypb.New(wrapperspb.Int64(x.(int64))) - return a - case bool: - var a *anypb.Any - a, _ = anypb.New(wrapperspb.Bool(x.(bool))) - return a - default: - log.Error(errors.New("convertToAnypb() unknown type"), "v =", v, "x =", x) - return nil - } - return nil -} - -func convertToString(x any) string { - switch v := x.(type) { - case int64: - return fmt.Sprintf("%d", x.(int64)) - case string: - return x.(string) - case int: - return fmt.Sprintf("%d", x.(int)) - case uint: - return fmt.Sprintf("%d", x.(uint)) - case bool: - if x.(bool) { - return "true" - } - return "false" - default: - log.Info("convertToSTring() unknown type", v) - log.Error(errors.New("convertToSTring() unknown type"), "v =", v, "x =", x) - return "" - } - return "" -} - -// Wrapping the int into a protobuf message -func NewChangeEvent(d *pb.Droplet, fname string, origval any, newval any) *pb.Event { - var e *pb.Event - e = new(pb.Event) - - e.Droplet = d.Hostname - e.OrigVal = convertToString(origval) - e.NewVal = convertToString(newval) - e.FieldName = fname - - now := time.Now() - e.Start = timestamppb.New(now) - - // this also works, but it's a bit overkill - // e.NewAny = convertToAnypb(newval) - - // me.events.Events = append(me.events.Events, e) - // stuff := me.events.FormatJSON() - // log.Info("events:", stuff) - return e -} - -// work in progress -func NewAddEvent(a any, fname string, newval any) *pb.Event { - var e *pb.Event - e = new(pb.Event) - - switch v := a.(type) { - case *pb.Droplet: - var d *pb.Droplet - d = a.(*pb.Droplet) - e.Droplet = d.Hostname - case *pb.Cluster: - e.Droplet = "Cluster" - case nil: - e.Droplet = "" - default: - log.Info("newAddEvent() unknown type", v) - e.Droplet = "on something somewhere" - } - - e.NewVal = convertToString(newval) - e.FieldName = fname - - now := time.Now() - e.Start = timestamppb.New(now) - - return e -} - -/* -// update the droplet memory -func (d *pb.Droplet) SetMemory(b int64) *pb.Event { - oldm := pb.HumanFormatBytes(d.pb.Memory) - newm := pb.HumanFormatBytes(b) - if d.pb.Memory == b { - // log.Info("droplet", d.pb.Hostname, "memory unchanged", oldm, "to", newm) - return nil - } - log.Info("droplet", d.pb.Hostname, "memory change from", oldm, "to", newm) - - return NewChangeEvent(d.pb, "Droplet.Memory", d.pb.Memory, b) -} -*/ - -/* -// update the droplet memory -func (d *pb.Droplet) SetCpus(b int64) { - log.Info("Set the number of cpus for the droplet", b) -} -*/ diff --git a/validate.go b/validate.go index 2668e9f..3822c2a 100644 --- a/validate.go +++ b/validate.go @@ -51,7 +51,7 @@ func addClusterFilepath(dir string) *pb.Event { if !found { if dir != "." { // make a new Add Event - e = NewAddEvent(nil, "Add Cluster Directory", dir) + e = pb.NewAddEvent(nil, "Add Cluster Directory", dir) me.cluster.Dirs = append(me.cluster.Dirs, dir) } } @@ -93,7 +93,7 @@ func insertFilename(d *pb.Droplet, filename string) (*pb.Event, error) { } } // make a new Add Event - e := NewChangeEvent(d, "Add Disk", "", filename) + e := d.NewChangeEvent("Add Disk", "", filename) // add the disk protobuf entry var disk *pb.Disk @@ -146,7 +146,7 @@ func checkDiskFilenames() []*pb.Event { addClusterFilepath(dir) if disk.Filename != filebase { // update filename - e := NewChangeEvent(d, "Disk.Filename", disk.Filename, filebase) + e := d.NewChangeEvent("Disk.Filename", disk.Filename, filebase) alle = append(alle, e) disk.Filename = filebase } @@ -158,7 +158,7 @@ func checkDiskFilenames() []*pb.Event { } if disk.Filepath != dir { // update filename - e := NewChangeEvent(d, "Disk.Filepath", disk.Filepath, dir) + e := d.NewChangeEvent("Disk.Filepath", disk.Filepath, dir) alle = append(alle, e) disk.Filepath = dir }