feat(handler): change path resolver logic #5
@ -2,6 +2,7 @@ package kubeprobes
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
type kubeprobes struct {
|
type kubeprobes struct {
|
||||||
@ -11,15 +12,16 @@ type kubeprobes struct {
|
|||||||
|
|
||||||
// ServeHTTP implements http.Handler interface
|
// ServeHTTP implements http.Handler interface
|
||||||
func (kp *kubeprobes) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (kp *kubeprobes) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
switch r.URL.Path {
|
subs := strings.Split(strings.TrimSuffix(r.URL.Path, "/"), "/")
|
||||||
case "/live":
|
switch subs[len(subs)-1] {
|
||||||
|
case "live":
|
||||||
sq := newStatusQuery(kp.livenessProbes)
|
sq := newStatusQuery(kp.livenessProbes)
|
||||||
if sq.isAllGreen() {
|
if sq.isAllGreen() {
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
} else {
|
} else {
|
||||||
w.WriteHeader(http.StatusServiceUnavailable)
|
w.WriteHeader(http.StatusServiceUnavailable)
|
||||||
}
|
}
|
||||||
case "/ready":
|
case "ready":
|
||||||
sq := newStatusQuery(append(kp.livenessProbes, kp.readinessProbes...))
|
sq := newStatusQuery(append(kp.livenessProbes, kp.readinessProbes...))
|
||||||
if sq.isAllGreen() {
|
if sq.isAllGreen() {
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
|
Loading…
Reference in New Issue
Block a user