From db38ad6091ba80a940244466787d5707ae9f3e46 Mon Sep 17 00:00:00 2001 From: Marc Di Luzio Date: Sat, 6 Jun 2020 16:37:57 +0100 Subject: [PATCH] Add tick information to server status --- cmd/rove/main.go | 2 ++ pkg/rove/api.go | 6 ++++-- pkg/server/routes.go | 12 ++++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cmd/rove/main.go b/cmd/rove/main.go index 9c8fe93..c9e0691 100644 --- a/cmd/rove/main.go +++ b/cmd/rove/main.go @@ -105,6 +105,8 @@ func InnerMain(command string) error { } else { fmt.Printf("Ready: %t\n", response.Ready) fmt.Printf("Version: %s\n", response.Version) + fmt.Printf("Tick: %d\n", response.Tick) + fmt.Printf("Next Tick: %s\n", response.NextTick) } case "register": diff --git a/pkg/rove/api.go b/pkg/rove/api.go index c72d685..130e2c4 100644 --- a/pkg/rove/api.go +++ b/pkg/rove/api.go @@ -17,8 +17,10 @@ func (s Server) Status() (r StatusResponse, err error) { // StatusResponse is a struct that contains information on the status of the server type StatusResponse struct { - Ready bool `json:"ready"` - Version string `json:"version"` + Ready bool `json:"ready"` + Version string `json:"version"` + Tick int `json:"tick"` + NextTick string `json:"nexttick,omitempty"` } // ============================== diff --git a/pkg/server/routes.go b/pkg/server/routes.go index cc3c79e..f06e337 100644 --- a/pkg/server/routes.go +++ b/pkg/server/routes.go @@ -59,10 +59,18 @@ var Routes = []Route{ func HandleStatus(s *Server, vars map[string]string, b io.ReadCloser, w io.Writer) (interface{}, error) { // Simply return the current server status - return rove.StatusResponse{ + response := rove.StatusResponse{ Ready: true, Version: version.Version, - }, nil + Tick: s.tick, + } + + // If there's a schedule, respond with it + if len(s.schedule.Entries()) > 0 { + response.NextTick = s.schedule.Entries()[0].Next.Format("15:04:05") + } + + return response, nil } // HandleRegister handles /register endpoint