From 9b94785cd2ddd100553f17763f5318909dc16dc8 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 25 Oct 2024 17:01:30 -0500 Subject: [PATCH] start date works on events Signed-off-by: Jeff Carr --- change.go | 5 +++++ config.go | 21 +++++++++++---------- main.go | 6 +++++- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/change.go b/change.go index 58558b1..a4aef5f 100644 --- a/change.go +++ b/change.go @@ -5,8 +5,10 @@ import ( "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" @@ -71,6 +73,9 @@ func NewChangeEvent(d *pb.Droplet, fname string, origval any, newval any) *pb.Ev 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) diff --git a/config.go b/config.go index d0c5c7f..5924315 100644 --- a/config.go +++ b/config.go @@ -29,23 +29,24 @@ var ErrorParseXML error = errors.New("invalid xml") // something is wrong somewhere and sometimes the // protobuf json files get written out with garbage -func cfgfile() { +func cfgfile() error { err := readConfigFile("virtigo.json") if err == nil { - return - } - if err == ErrorParseJSON { - os.Exit(-1) + return err } + // test last config also parses err = readConfigFile("virtigo.json.last") if err == nil { - log.Info("read json failed", err) - os.Exit(-1) + return err } - if err == ErrorNoFile { - log.Info("no config file created yet", err) - os.Exit(-1) + + // try parsing event log + e, err := pb.ReadEventsConfig() + if err == nil { + return err } + me.events = e + return nil } func readConfigFile(filename string) error { diff --git a/main.go b/main.go index fb26ee6..6f7bbf7 100644 --- a/main.go +++ b/main.go @@ -47,7 +47,11 @@ func main() { me.events.Uuid = u.String() me.events.Version = "dirty v1" - cfgfile() + err := cfgfile() + if err != nil { + log.Warn("reading config file failed", err) + os.Exit(-1) + } // sanity check the droplets checkDroplets(false)