From a50f387b96f5bf3e466a91ddd02804a2289090cc Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sat, 26 Oct 2024 09:38:02 -0500 Subject: [PATCH] more common code. it might work again. would be nice to have a kuma check, but no. I fucking deleted it. and of course with no backup or memory of where I mapped it to. kuma needs an undelete! or an event log of changes to kuma. ironic since all it does is track changes in state but it doesn't track it's own changes Signed-off-by: Jeff Carr --- addDroplet.go | 10 ++-- change.go | 136 -------------------------------------------------- validate.go | 8 +-- 3 files changed, 9 insertions(+), 145 deletions(-) delete mode 100644 change.go 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 }