From 279ade31e88474b406081b82147366809a2e78e1 Mon Sep 17 00:00:00 2001 From: Gaius Date: Fri, 25 Mar 2022 16:58:14 +0800 Subject: [PATCH] feat: add dfdaemon upload server healthy interface Signed-off-by: Gaius --- client/daemon/upload/upload_manager.go | 10 ++++++++++ manager/router/router.go | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/client/daemon/upload/upload_manager.go b/client/daemon/upload/upload_manager.go index a3d035cf030..1f1d999a0d6 100644 --- a/client/daemon/upload/upload_manager.go +++ b/client/daemon/upload/upload_manager.go @@ -73,6 +73,7 @@ func WithLimiter(limiter *rate.Limiter) func(*uploadManager) { func (um *uploadManager) initRouter() { r := mux.NewRouter() + r.HandleFunc("/healthy", um.handleHealth).Methods("GET") r.HandleFunc(PeerDownloadHTTPPathPrefix+"{taskPrefix:.*}/"+"{task:.*}", um.handleUpload).Queries("peerId", "{.*}").Methods("GET") um.Server.Handler = r } @@ -85,6 +86,15 @@ func (um *uploadManager) Stop() error { return um.Server.Shutdown(context.Background()) } +// handleHealth uses to check server health. +func (um *uploadManager) handleHealth(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + w.Header().Set(headers.ContentType, "application/json") + if _, err := w.Write([]byte("OK")); err != nil { + w.WriteHeader(http.StatusInternalServerError) + } +} + // handleUpload uses to upload a task file when other peers download from it. func (um *uploadManager) handleUpload(w http.ResponseWriter, r *http.Request) { var ( diff --git a/manager/router/router.go b/manager/router/router.go index c267b2f24a5..d31ed674e52 100644 --- a/manager/router/router.go +++ b/manager/router/router.go @@ -218,7 +218,7 @@ func Init(cfg *config.Config, logDir string, service service.Service, enforcer * pv1.GET(":id", h.GetV1Preheat) // Health Check - r.GET("/healthy/*action", h.GetHealth) + r.GET("/healthy", h.GetHealth) // Swagger apiSeagger := ginSwagger.URL("/swagger/doc.json")