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 <jcarr@wit.com>
This commit is contained in:
parent
161bfe395e
commit
a50f387b96
|
@ -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}
|
// OS Type: &{Arch:x86_64 Machine:pc-i440fx-5.2 Type:hvm}
|
||||||
t := domcfg.OS.Type
|
t := domcfg.OS.Type
|
||||||
if d.QemuArch != t.Arch {
|
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)
|
alle = append(alle, e)
|
||||||
d.QemuArch = t.Arch
|
d.QemuArch = t.Arch
|
||||||
}
|
}
|
||||||
if d.QemuMachine != t.Machine {
|
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)
|
alle = append(alle, e)
|
||||||
d.QemuMachine = t.Machine
|
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) {
|
if d.Cpus != int64(domcfg.VCPU.Value) {
|
||||||
// fmt.Printf("cpus changed. VCPU = %+v\n", domcfg.VCPU)
|
// fmt.Printf("cpus changed. VCPU = %+v\n", domcfg.VCPU)
|
||||||
fmt.Printf("cpus changed. from %d to %d\n", d.Cpus, domcfg.VCPU.Value)
|
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)
|
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
|
// print out, but ignore the port number
|
||||||
d.SpicePort = int64(s.Port)
|
d.SpicePort = int64(s.Port)
|
||||||
fmt.Printf("Spice Port set to = %d\n", 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
|
eth.Name = brname
|
||||||
d.Networks = append(d.Networks, eth)
|
d.Networks = append(d.Networks, eth)
|
||||||
allEvents = append(allEvents, NewChangeEvent(d, "Droplet NewNetwork", "", mac+" "+brname))
|
allEvents = append(allEvents, d.NewChangeEvent("Droplet NewNetwork", "", mac+" "+brname))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
136
change.go
136
change.go
|
@ -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)
|
|
||||||
}
|
|
||||||
*/
|
|
|
@ -51,7 +51,7 @@ func addClusterFilepath(dir string) *pb.Event {
|
||||||
if !found {
|
if !found {
|
||||||
if dir != "." {
|
if dir != "." {
|
||||||
// make a new Add Event
|
// 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)
|
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
|
// make a new Add Event
|
||||||
e := NewChangeEvent(d, "Add Disk", "", filename)
|
e := d.NewChangeEvent("Add Disk", "", filename)
|
||||||
|
|
||||||
// add the disk protobuf entry
|
// add the disk protobuf entry
|
||||||
var disk *pb.Disk
|
var disk *pb.Disk
|
||||||
|
@ -146,7 +146,7 @@ func checkDiskFilenames() []*pb.Event {
|
||||||
addClusterFilepath(dir)
|
addClusterFilepath(dir)
|
||||||
if disk.Filename != filebase {
|
if disk.Filename != filebase {
|
||||||
// update filename
|
// update filename
|
||||||
e := NewChangeEvent(d, "Disk.Filename", disk.Filename, filebase)
|
e := d.NewChangeEvent("Disk.Filename", disk.Filename, filebase)
|
||||||
alle = append(alle, e)
|
alle = append(alle, e)
|
||||||
disk.Filename = filebase
|
disk.Filename = filebase
|
||||||
}
|
}
|
||||||
|
@ -158,7 +158,7 @@ func checkDiskFilenames() []*pb.Event {
|
||||||
}
|
}
|
||||||
if disk.Filepath != dir {
|
if disk.Filepath != dir {
|
||||||
// update filename
|
// update filename
|
||||||
e := NewChangeEvent(d, "Disk.Filepath", disk.Filepath, dir)
|
e := d.NewChangeEvent("Disk.Filepath", disk.Filepath, dir)
|
||||||
alle = append(alle, e)
|
alle = append(alle, e)
|
||||||
disk.Filepath = dir
|
disk.Filepath = dir
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue