@@ -83,6 +83,7 @@ func (s *Scheduler) routeHandlers() map[string]http.HandlerFunc {
8383 }
8484 m ["GET " + inference .InferencePrefix + "/status" ] = s .GetBackendStatus
8585 m ["GET " + inference .InferencePrefix + "/ps" ] = s .GetRunningBackends
86+ m ["GET " + inference .InferencePrefix + "/df" ] = s .GetDiskUsage
8687 return m
8788}
8889
@@ -266,6 +267,28 @@ func (s *Scheduler) getLoaderStatus() []BackendStatus {
266267 return result
267268}
268269
270+ func (s * Scheduler ) GetDiskUsage (w http.ResponseWriter , _ * http.Request ) {
271+ modelsDiskUsage , err , httpCode := s .modelManager .GetDiskUsage ()
272+ if err != nil {
273+ http .Error (w , fmt .Sprintf ("Failed to get models disk usage: %v" , err ), httpCode )
274+ return
275+ }
276+
277+ // TODO: Get disk usage for each backend once the backends are implemented.
278+ defaultBackendDiskUsage , err := s .defaultBackend .GetDiskUsage ()
279+ if err != nil {
280+ http .Error (w , fmt .Sprintf ("Failed to get disk usage for %s: %v" , s .defaultBackend .Name (), err ), http .StatusInternalServerError )
281+ return
282+ }
283+
284+ diskUsage := DiskUsage {modelsDiskUsage , defaultBackendDiskUsage }
285+ w .Header ().Set ("Content-Type" , "application/json" )
286+ if err := json .NewEncoder (w ).Encode (diskUsage ); err != nil {
287+ http .Error (w , fmt .Sprintf ("Failed to encode response: %v" , err ), http .StatusInternalServerError )
288+ return
289+ }
290+ }
291+
269292// ServeHTTP implements net/http.Handler.ServeHTTP.
270293func (s * Scheduler ) ServeHTTP (w http.ResponseWriter , r * http.Request ) {
271294 s .router .ServeHTTP (w , r )
0 commit comments