added livez
This commit is contained in:
parent
1656b91e3b
commit
690613cab8
2 changed files with 15 additions and 10 deletions
|
|
@ -32,8 +32,14 @@ type notFoundHandler struct {
|
||||||
log logr.Logger
|
log logr.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
func (nf *notFoundHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (h *notFoundHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
types.NewContext(w, r, nil, nf.log).Err(types.ErrInvalidAPIRoute)
|
types.NewContext(w, r, nil, h.log).Err(types.ErrInvalidAPIRoute)
|
||||||
|
}
|
||||||
|
|
||||||
|
type okHandler struct{}
|
||||||
|
|
||||||
|
func (okHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
|
types.NewContext(w, r, nil, logr.Discard()).OK()
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewServer(log logr.Logger, listen, socket string, db *db.DB) (*Server, error) {
|
func NewServer(log logr.Logger, listen, socket string, db *db.DB) (*Server, error) {
|
||||||
|
|
@ -63,6 +69,9 @@ func NewServer(log logr.Logger, listen, socket string, db *db.DB) (*Server, erro
|
||||||
s.socket = sock
|
s.socket = sock
|
||||||
|
|
||||||
m.Handle("/", ¬FoundHandler{log})
|
m.Handle("/", ¬FoundHandler{log})
|
||||||
|
ok := okHandler{}
|
||||||
|
m.Handle("GET /livez", ok)
|
||||||
|
m.Handle("GET /readyz", ok)
|
||||||
for _, v := range serverv1.Routes {
|
for _, v := range serverv1.Routes {
|
||||||
for _, method := range v.Methods {
|
for _, method := range v.Methods {
|
||||||
m.HandleFunc(method+" "+v.Path, s.contextWrapper(v.Handler))
|
m.HandleFunc(method+" "+v.Path, s.contextWrapper(v.Handler))
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ type ContextData struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewContext(w http.ResponseWriter, r *http.Request, data *ContextData, log logr.Logger) *Context {
|
func NewContext(w http.ResponseWriter, r *http.Request, data *ContextData, log logr.Logger) *Context {
|
||||||
h := w.Header()
|
|
||||||
h.Set("Content-Type", "application/json")
|
|
||||||
return &Context{
|
return &Context{
|
||||||
code: http.StatusOK,
|
code: http.StatusOK,
|
||||||
r: r,
|
r: r,
|
||||||
|
|
@ -110,13 +108,9 @@ func (c *Context) ReadBody() (b []byte, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Context) Body(b []byte) {
|
|
||||||
c.w.Write(b)
|
|
||||||
c.log()
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSON is a json response
|
// JSON is a json response
|
||||||
func (c *Context) JSON(v any) {
|
func (c *Context) JSON(v any) {
|
||||||
|
c.SetHeader("Content-Type", "application/json")
|
||||||
err := json.NewEncoder(c.w).Encode(v)
|
err := json.NewEncoder(c.w).Encode(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Err(ErrISE)
|
c.Err(ErrISE)
|
||||||
|
|
@ -139,7 +133,9 @@ func (c *Context) Err(err Error) {
|
||||||
// HTTPErr is a http.Error wrapper
|
// HTTPErr is a http.Error wrapper
|
||||||
func (c *Context) HTTPErr(err string, code int) {
|
func (c *Context) HTTPErr(err string, code int) {
|
||||||
c.code = code
|
c.code = code
|
||||||
http.Error(c.w, err, code)
|
c.SetHeader("Content-Type", "application/json")
|
||||||
|
c.w.WriteHeader(code)
|
||||||
|
c.w.Write([]byte(err))
|
||||||
c.log()
|
c.log()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue