From eb80edf60fb3390b9a41a7e1546b3c55fc57e320 Mon Sep 17 00:00:00 2001 From: jagger Date: Wed, 27 Aug 2025 19:40:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BB=BB=E5=8A=A1=E9=87=8D?= =?UTF-8?q?=E8=B0=83=E6=8E=A5=E5=8F=A3=E5=8F=8A=E7=9B=B8=E5=85=B3=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdks/hpc/job.go | 41 +++++++++++++++++++++++++++++++++++++++-- sdks/hpc/models.go | 12 +++++++++++- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/sdks/hpc/job.go b/sdks/hpc/job.go index 8c9acad..4aba8da 100644 --- a/sdks/hpc/job.go +++ b/sdks/hpc/job.go @@ -2,11 +2,12 @@ package hpc import ( "fmt" + "net/url" + "strings" + schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler" "gitlink.org.cn/cloudream/common/utils/http2" "gitlink.org.cn/cloudream/common/utils/serder" - "net/url" - "strings" ) type CreateHPCJobReq struct { @@ -81,3 +82,39 @@ func (c *Client) CreateJob(req CreateHPCJobReq, token string) (*CreateJobResp, e return nil, fmt.Errorf("unknow response content type: %s", contType) } + +func (c *Client) GetHPCAppClusters(app string, token string) (*AppClusterResp, error) { + targetUrl, err := url.JoinPath(c.baseURL, "/hpc/getHpcAppCluster") + if err != nil { + return nil, err + } + + resp, err := http2.GetForm(targetUrl, http2.RequestParam{ + Query: map[string]string{ + "app": app, + }, + Header: map[string]string{ + "Authorization": token, + }, + }) + if err != nil { + return nil, err + } + + contType := resp.Header.Get("Content-Type") + if strings.Contains(contType, http2.ContentTypeJSON) { + var codeResp respons2[AppClusterResp] + if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil { + return nil, fmt.Errorf("parsing response: %w", err) + } + + if codeResp.Code == ResponseCodeOK { + return &codeResp.Data, nil + } + + return nil, fmt.Errorf("error: %s", codeResp.Message) + } + + return nil, fmt.Errorf("unknow response content type: %s", contType) + +} diff --git a/sdks/hpc/models.go b/sdks/hpc/models.go index d3a0522..ba78238 100644 --- a/sdks/hpc/models.go +++ b/sdks/hpc/models.go @@ -1,11 +1,12 @@ package hpc import ( + "time" + "gitlink.org.cn/cloudream/common/pkgs/types" schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler" cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" "gitlink.org.cn/cloudream/common/utils/serder" - "time" ) type ResourceType string @@ -523,3 +524,12 @@ type PublicLevel struct { Type string `json:"type" binding:"required"` Info DataBinding `json:"info"` // 可选,用于精细筛选,功能暂未实现 } + +type AppClusterResp struct { + List []struct { + Id string `json:"id"` + Name string `json:"name"` + Nickname string `json:"nickname"` + Region string `json:"region"` + } `json:"list"` +}