From 2b772541f539ecd1c114083f32e791a537dd314e Mon Sep 17 00:00:00 2001 From: nitrocode <7775707+nitrocode@users.noreply.github.com> Date: Sun, 5 Jun 2022 23:06:37 -0400 Subject: [PATCH] Add version to /status endpoint (#2295) * Add version to /status endpoint * Add version to test * Fix linting errors --- server/controllers/status_controller.go | 15 +++++++++------ server/controllers/status_controller_test.go | 15 +++++++++------ server/server.go | 5 +++-- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/server/controllers/status_controller.go b/server/controllers/status_controller.go index e54b3e114..b26a52f04 100644 --- a/server/controllers/status_controller.go +++ b/server/controllers/status_controller.go @@ -11,21 +11,24 @@ import ( // StatusController handles the status of Atlantis. type StatusController struct { - Logger logging.SimpleLogging - Drainer *events.Drainer + Logger logging.SimpleLogging + Drainer *events.Drainer + AtlantisVersion string } type StatusResponse struct { - ShuttingDown bool `json:"shutting_down"` - InProgressOps int `json:"in_progress_operations"` + ShuttingDown bool `json:"shutting_down"` + InProgressOps int `json:"in_progress_operations"` + AtlantisVersion string `json:"version"` } // Get is the GET /status route. func (d *StatusController) Get(w http.ResponseWriter, r *http.Request) { status := d.Drainer.GetStatus() data, err := json.MarshalIndent(&StatusResponse{ - ShuttingDown: status.ShuttingDown, - InProgressOps: status.InProgressOps, + ShuttingDown: status.ShuttingDown, + InProgressOps: status.InProgressOps, + AtlantisVersion: d.AtlantisVersion, }, "", " ") if err != nil { w.WriteHeader(http.StatusInternalServerError) diff --git a/server/controllers/status_controller_test.go b/server/controllers/status_controller_test.go index bc5161155..7cd4df4b3 100644 --- a/server/controllers/status_controller_test.go +++ b/server/controllers/status_controller_test.go @@ -20,8 +20,9 @@ func TestStatusController_Startup(t *testing.T) { w := httptest.NewRecorder() dr := &events.Drainer{} d := &controllers.StatusController{ - Logger: logger, - Drainer: dr, + Logger: logger, + Drainer: dr, + AtlantisVersion: "1.0.0", } d.Get(w, r) @@ -43,8 +44,9 @@ func TestStatusController_InProgress(t *testing.T) { dr.StartOp() d := &controllers.StatusController{ - Logger: logger, - Drainer: dr, + Logger: logger, + Drainer: dr, + AtlantisVersion: "1.0.0", } d.Get(w, r) @@ -66,8 +68,9 @@ func TestStatusController_Shutdown(t *testing.T) { dr.ShutdownBlocking() d := &controllers.StatusController{ - Logger: logger, - Drainer: dr, + Logger: logger, + Drainer: dr, + AtlantisVersion: "1.0.0", } d.Get(w, r) diff --git a/server/server.go b/server/server.go index a6546a70c..284bdbbf8 100644 --- a/server/server.go +++ b/server/server.go @@ -472,8 +472,9 @@ func NewServer(userConfig UserConfig, config Config) (*Server, error) { } drainer := &events.Drainer{} statusController := &controllers.StatusController{ - Logger: logger, - Drainer: drainer, + Logger: logger, + Drainer: drainer, + AtlantisVersion: config.AtlantisVersion, } preWorkflowHooksCommandRunner := &events.DefaultPreWorkflowHooksCommandRunner{ VCSClient: vcsClient,