diff --git a/client/v1/status.go b/client/v1/status.go index e9982d53..4dd03f18 100644 --- a/client/v1/status.go +++ b/client/v1/status.go @@ -2,7 +2,6 @@ package v1 import ( "context" - "crypto/tls" "encoding/json" "fmt" "io" @@ -12,12 +11,13 @@ import ( ) // GetPackageStatus fetches the GPUd package status from the GPUd admin API. -func GetPackageStatus(ctx context.Context, url string) ([]packages.PackageStatus, error) { - httpClient := &http.Client{ - Transport: &http.Transport{ - TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, - }, +func GetPackageStatus(ctx context.Context, url string, opts ...OpOption) ([]packages.PackageStatus, error) { + op := &Op{} + if err := op.applyOpts(opts); err != nil { + return nil, err } + + httpClient := op.httpClient req, err := http.NewRequestWithContext(ctx, "GET", url, nil) if err != nil { return nil, err diff --git a/cmd/gpud/command/status.go b/cmd/gpud/command/status.go index b3902e49..a609da72 100644 --- a/cmd/gpud/command/status.go +++ b/cmd/gpud/command/status.go @@ -11,6 +11,7 @@ import ( client "github.com/leptonai/gpud/client/v1" "github.com/leptonai/gpud/config" "github.com/leptonai/gpud/errdefs" + "github.com/leptonai/gpud/internal/server" "github.com/leptonai/gpud/log" "github.com/leptonai/gpud/pkg/systemd" ) @@ -52,7 +53,7 @@ func cmdStatus(cliContext *cli.Context) error { for { cctx, ccancel := context.WithTimeout(rootCtx, 15*time.Second) - packageStatus, err := client.GetPackageStatus(cctx, fmt.Sprintf("https://localhost:%d/admin/packages", config.DefaultGPUdPort)) + packageStatus, err := client.GetPackageStatus(cctx, fmt.Sprintf("https://localhost:%d%s", config.DefaultGPUdPort, server.URLPathAdminPackages)) ccancel() if err != nil { fmt.Printf("%s failed to get package status: %v\n", warningSign, err) diff --git a/internal/server/handlers.go b/internal/server/handlers.go index 235aab53..84a2dd5c 100644 --- a/internal/server/handlers.go +++ b/internal/server/handlers.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "net/http" + "path" "sort" "strconv" "strings" @@ -149,8 +150,13 @@ func createConfigHandler(cfg *lep_config.Config) func(c *gin.Context) { } const ( - URLPathPackages = "/packages" - URLPathPackagesDesc = "Get the status of gpud managed packages" + urlPathAdmin = "/admin" + urlPathPackages = "/packages" + urlPathPackagesDesc = "Get the status of gpud managed packages" +) + +var ( + URLPathAdminPackages = path.Join(urlPathAdmin, urlPathPackages) ) func createPackageHandler(m *manager.Manager) func(c *gin.Context) { diff --git a/internal/server/server.go b/internal/server/server.go index 6d3645cb..b65229c2 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -1164,17 +1164,17 @@ func New(ctx context.Context, config *lepconfig.Config, endpoint string, cliUID Desc: URLPathHealthzDesc, }) - admin := router.Group("/admin") + admin := router.Group(urlPathAdmin) admin.GET(URLPathConfig, createConfigHandler(config)) registeredPaths = append(registeredPaths, componentHandlerDescription{ Path: path.Join("/admin", URLPathConfig), Desc: URLPathConfigDesc, }) - admin.GET(URLPathPackages, createPackageHandler(packageManager)) + admin.GET(urlPathPackages, createPackageHandler(packageManager)) registeredPaths = append(registeredPaths, componentHandlerDescription{ - Path: path.Join("/admin", URLPathPackages), - Desc: URLPathPackagesDesc, + Path: URLPathAdminPackages, + Desc: urlPathPackagesDesc, }) if config.Pprof {