From 9a9a69e120cd245c9c05e34285505d78b80ed8bf Mon Sep 17 00:00:00 2001 From: Will Winder Date: Tue, 26 Oct 2021 17:34:51 -0400 Subject: [PATCH 1/2] Add version to health endpoint. --- api/generated/common/routes.go | 294 ++++++++++++++++----------------- api/generated/common/types.go | 3 + api/generated/v2/routes.go | 163 +++++++++--------- api/generated/v2/types.go | 3 + api/handlers.go | 2 + api/handlers_e2e_test.go | 31 ++++ api/indexer.oas2.json | 5 + api/indexer.oas3.yml | 7 +- 8 files changed, 279 insertions(+), 229 deletions(-) diff --git a/api/generated/common/routes.go b/api/generated/common/routes.go index 6c742a751..200707e72 100644 --- a/api/generated/common/routes.go +++ b/api/generated/common/routes.go @@ -71,153 +71,153 @@ func RegisterHandlers(router interface { // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "3h5S6o2xAAA=", + "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", + "1PEvBrjOt4vbn27/JwAA//92Y59X1LEAAA==", } // GetSwagger returns the Swagger specification corresponding to the generated code diff --git a/api/generated/common/types.go b/api/generated/common/types.go index 371f50317..e312ec136 100644 --- a/api/generated/common/types.go +++ b/api/generated/common/types.go @@ -428,6 +428,9 @@ type HealthCheck struct { IsMigrating bool `json:"is-migrating"` Message string `json:"message"` Round uint64 `json:"round"` + + // Current version. + Version string `json:"version"` } // MiniAssetHolding defines model for MiniAssetHolding. diff --git a/api/generated/v2/routes.go b/api/generated/v2/routes.go index 9b9073e2f..1380356a8 100644 --- a/api/generated/v2/routes.go +++ b/api/generated/v2/routes.go @@ -1506,87 +1506,88 @@ var swaggerSpec = []string{ "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", + "OJaEvRYBAA==", } // GetSwagger returns the Swagger specification corresponding to the generated code diff --git a/api/generated/v2/types.go b/api/generated/v2/types.go index e7f5c9925..9eb43aad0 100644 --- a/api/generated/v2/types.go +++ b/api/generated/v2/types.go @@ -428,6 +428,9 @@ type HealthCheck struct { IsMigrating bool `json:"is-migrating"` Message string `json:"message"` Round uint64 `json:"round"` + + // Current version. + Version string `json:"version"` } // MiniAssetHolding defines model for MiniAssetHolding. diff --git a/api/handlers.go b/api/handlers.go index 26090487b..86056a8dc 100644 --- a/api/handlers.go +++ b/api/handlers.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "github.com/algorand/indexer/version" "net/http" "strconv" @@ -75,6 +76,7 @@ func (si *ServerImplementation) MakeHealthCheck(ctx echo.Context) error { } return ctx.JSON(http.StatusOK, common.HealthCheckResponse{ + Version: version.LongVersion(), Data: health.Data, Round: health.Round, IsMigrating: health.IsMigrating, diff --git a/api/handlers_e2e_test.go b/api/handlers_e2e_test.go index 4be13ff00..629509441 100644 --- a/api/handlers_e2e_test.go +++ b/api/handlers_e2e_test.go @@ -299,3 +299,34 @@ func TestPagingRootTxnDeduplication(t *testing.T) { }) } } + +func TestVersion(t *testing.T) { + /////////// + // Given // An API and context + /////////// + db, shutdownFunc := setupIdb(t, test.MakeGenesis(), test.MakeGenesisBlock()) + defer shutdownFunc() + api := &ServerImplementation{db: db} + + e := echo.New() + req := httptest.NewRequest(http.MethodGet, "/", nil) + rec1 := httptest.NewRecorder() + c := e.NewContext(req, rec1) + + ////////// + // When // we call the health endpoint + ////////// + err := api.MakeHealthCheck(c) + + ////////// + // Then // We get the health information. + ////////// + require.NoError(t, err) + require.Equal(t, http.StatusOK, rec1.Code) + var response generated.HealthCheckResponse + json.Decode(rec1.Body.Bytes(), &response) + + require.Equal(t, uint64(0), response.Round) + require.False(t, response.IsMigrating) + require.Contains(t, response.Version, "from git hash") +} diff --git a/api/indexer.oas2.json b/api/indexer.oas2.json index faffe442e..25d636fdf 100644 --- a/api/indexer.oas2.json +++ b/api/indexer.oas2.json @@ -1394,12 +1394,17 @@ "description": "A health check response.", "type": "object", "required": [ + "version", "message", "round", "is-migrating", "db-available" ], "properties": { + "version": { + "description": "Current version.", + "type": "string" + }, "data": { "type": "object" }, diff --git a/api/indexer.oas3.yml b/api/indexer.oas3.yml index 3e6ff62b3..cf275124b 100644 --- a/api/indexer.oas3.yml +++ b/api/indexer.oas3.yml @@ -1239,13 +1239,18 @@ }, "round": { "type": "integer" + }, + "version": { + "description": "Current version.", + "type": "string" } }, "required": [ "db-available", "is-migrating", "message", - "round" + "round", + "version" ], "type": "object" }, From 695c97e91c6e7b204d270582aae49da40a3ab3e8 Mon Sep 17 00:00:00 2001 From: Will Winder Date: Tue, 26 Oct 2021 18:21:47 -0400 Subject: [PATCH 2/2] Fix import order, use complete version string. --- api/handlers.go | 2 +- api/handlers_e2e_test.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/api/handlers.go b/api/handlers.go index 86056a8dc..a1af45cf3 100644 --- a/api/handlers.go +++ b/api/handlers.go @@ -4,7 +4,6 @@ import ( "context" "errors" "fmt" - "github.com/algorand/indexer/version" "net/http" "strconv" @@ -16,6 +15,7 @@ import ( "github.com/algorand/indexer/api/generated/v2" "github.com/algorand/indexer/idb" "github.com/algorand/indexer/util" + "github.com/algorand/indexer/version" ) // ServerImplementation implements the handler interface used by the generated route definitions. diff --git a/api/handlers_e2e_test.go b/api/handlers_e2e_test.go index 629509441..3e8f79281 100644 --- a/api/handlers_e2e_test.go +++ b/api/handlers_e2e_test.go @@ -328,5 +328,6 @@ func TestVersion(t *testing.T) { require.Equal(t, uint64(0), response.Round) require.False(t, response.IsMigrating) - require.Contains(t, response.Version, "from git hash") + // This is weird looking because the version is set with -ldflags + require.Equal(t, response.Version, "-dev.unknown compiled at from git hash ") }