diff options
| author | Jeff Carr <[email protected]> | 2024-10-26 09:38:02 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-10-26 09:38:02 -0500 |
| commit | a50f387b96f5bf3e466a91ddd02804a2289090cc (patch) | |
| tree | b8526e7f4135091914e7c878a519c7dbbcc256d2 | |
| parent | 161bfe395ea8c12bbfcc66901e8532a4e6f7e061 (diff) | |
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 <[email protected]>
| -rw-r--r-- | addDroplet.go | 10 | ||||
| -rw-r--r-- | change.go | 136 | ||||
| -rw-r--r-- | validate.go | 8 |
3 files changed, 9 insertions, 145 deletions
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 = "<nil>" - 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 } |
