forked from TrueCloudLab/frostfs-http-gw
35 lines
748 B
Go
35 lines
748 B
Go
package main
|
|
|
|
import (
|
|
"github.com/fasthttp/router"
|
|
"github.com/valyala/fasthttp"
|
|
)
|
|
|
|
type stater func() error
|
|
|
|
const (
|
|
healthyState = "NeoFS HTTP Gateway is "
|
|
defaultContentType = "text/plain; charset=utf-8"
|
|
)
|
|
|
|
func attachHealthy(r *router.Router, e stater) {
|
|
r.GET("/-/ready/", func(ctx *fasthttp.RequestCtx) {
|
|
ctx.SetStatusCode(fasthttp.StatusOK)
|
|
ctx.SetBodyString(healthyState + "ready")
|
|
})
|
|
|
|
r.GET("/-/healthy/", func(c *fasthttp.RequestCtx) {
|
|
code := fasthttp.StatusOK
|
|
msg := "healthy"
|
|
|
|
if err := e(); err != nil {
|
|
msg = "unhealthy: " + err.Error()
|
|
code = fasthttp.StatusBadRequest
|
|
}
|
|
|
|
c.Response.Reset()
|
|
c.SetStatusCode(code)
|
|
c.SetContentType(defaultContentType)
|
|
c.SetBodyString(healthyState + msg)
|
|
})
|
|
}
|