diff --git a/sdks/scheduler/jobset.go b/sdks/scheduler/jobset.go index b266d68..0e3a6ca 100644 --- a/sdks/scheduler/jobset.go +++ b/sdks/scheduler/jobset.go @@ -86,3 +86,41 @@ func (c *Client) JobSetLocalFileUploaded(req JobSetLocalFileUploadedReq) error { return fmt.Errorf("unknow response content type: %s", contType) } + +type JobSetGetServiceListReq struct { + JobSetID +} + +type JobSetGetServiceListResp struct { + ServiceList []JobSetServiceInfo `json:"serviceList"` +} + +func (c *Client) JobSetGetServiceList(req JobSetGetServiceListReq) (*JobSetGetServiceListResp, error) { + url, err := url.JoinPath(c.baseURL, "/jobSet/getServiceList") + if err != nil { + return nil, err + } + + resp, err := myhttp.GetJSON(url, myhttp.RequestParam{ + Body: req, + }) + if err != nil { + return nil, err + } + + contType := resp.Header.Get("Content-Type") + if strings.Contains(contType, myhttp.ContentTypeJSON) { + var codeResp response[JobSetGetServiceListResp] + if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil { + return nil, fmt.Errorf("parsing response: %w", err) + } + + if codeResp.Code == errorcode.OK { + return &codeResp.Data, nil + } + + return nil, codeResp.ToError() + } + + return nil, fmt.Errorf("unknow response content type: %s", contType) +} diff --git a/sdks/scheduler/models.go b/sdks/scheduler/models.go index 031a0ce..2748c55 100644 --- a/sdks/scheduler/models.go +++ b/sdks/scheduler/models.go @@ -54,6 +54,7 @@ type NormalJobInfo struct { Files JobFilesInfo `json:"files"` Runtime JobRuntimeInfo `json:"runtime"` Resources JobResourcesInfo `json:"resources"` + Services JobServicesInfo `json:"services"` } type ResourceJobInfo struct { @@ -143,3 +144,19 @@ type LocalFileUploadScheme struct { LocalPath string `json:"localPath"` UploadToCDSNodeID *cdssdk.NodeID `json:"uploadToCDSNodeID"` } + +type JobServicesInfo struct { + ServicePortInfos []ServicePortInfo `json:"servicePortInfos"` +} + +type ServicePortInfo struct { + Name string `json:"name"` + Port int64 `json:"port"` +} + +type JobSetServiceInfo struct { + Name string `json:"name"` + Port int64 `json:"port"` + CDSNodeID *cdssdk.NodeID `json:"cdsNodeID"` + LocalJobID string `json:"localJobID"` +}