...
1 package http
2
3 import (
4 "fmt"
5 "net/http"
6
7 dsHTTP "edge-infra.dev/pkg/edge/datasync/http"
8
9 "edge-infra.dev/pkg/edge/datasync/internal/config"
10 )
11
12 var isGRPCServerReady = false
13
14 func NewReadinessServer(shouldRun chan bool, cfg *config.Config) *dsHTTP.Server {
15 serverMux := http.NewServeMux()
16
17 serverMux.HandleFunc("/readiness", readiness)
18
19 return dsHTTP.NewServer(cfg.ReadinessPort, serverMux, shouldRun)
20 }
21
22 func readiness(w http.ResponseWriter, _ *http.Request) {
23 if isServerReady() {
24 fmt.Fprintf(w, "up")
25 return
26 }
27
28 w.WriteHeader(http.StatusServiceUnavailable)
29 fmt.Fprintf(w, "not ready")
30 }
31
32
33
34
35
36 func isServerReady() bool {
37 return isGRPCServerReady
38 }
39
40 func SetIsGRPCServerReady(isReady bool) {
41 isGRPCServerReady = isReady
42 }
43
View as plain text