| @@ -5,8 +5,10 @@ import ( | |||||
| "errors" | "errors" | ||||
| "gitlink.org.cn/jcce-pcm/pcm-ac/hpcAC" | "gitlink.org.cn/jcce-pcm/pcm-ac/hpcAC" | ||||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" | "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" | ||||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" | |||||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models" | "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models" | ||||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/utils" | "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/utils" | ||||
| "strconv" | |||||
| "strings" | "strings" | ||||
| ) | ) | ||||
| @@ -100,6 +102,17 @@ var RESOURCESPECS = map[string]string{ | |||||
| "79xSdy48yLbVLl9DqEV6tQ2J6jaHe5KO": "2*NODE, CPU:32, 8*DCU", | "79xSdy48yLbVLl9DqEV6tQ2J6jaHe5KO": "2*NODE, CPU:32, 8*DCU", | ||||
| } | } | ||||
| var AcStatus = map[string]string{ | |||||
| "statQ": "Pending", | |||||
| "statR": "Running", | |||||
| "statE": "Pending", | |||||
| "statC": "Completed", | |||||
| "statH": "Pending", | |||||
| "statS": "Pending", | |||||
| "statW": "Pending", | |||||
| "statX": "Other", | |||||
| } | |||||
| type ResourceSpec struct { | type ResourceSpec struct { | ||||
| GAP_NNODE string | GAP_NNODE string | ||||
| GAP_NPROC string | GAP_NPROC string | ||||
| @@ -188,16 +201,63 @@ func (s ShuguangHpc) SubmitTask(imageId string, cmd string, envs []string, param | |||||
| } | } | ||||
| func (s ShuguangHpc) QueryTask(taskId string) (interface{}, error) { | func (s ShuguangHpc) QueryTask(taskId string) (interface{}, error) { | ||||
| //TODO implement me | |||||
| panic("implement me") | |||||
| //实时作业 | |||||
| reqC := &hpcAC.JobDetailReq{ | |||||
| JobId: taskId, | |||||
| } | |||||
| respC, err := s.svcCtx.ACRpc.GetJobDetail(s.ctx, reqC) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| taskRespC, err := ConvertType[hpcAC.GetJobDetailResp](respC, nil) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| //实时作业检查是否成功 | |||||
| taskResp := taskRespC.(types.GetLinkTaskResp) | |||||
| if taskResp.Task != nil { | |||||
| return taskRespC, nil | |||||
| } | |||||
| //历史作业 | |||||
| reqH := &hpcAC.HistoryJobDetailReq{ | |||||
| JobId: taskId, | |||||
| JobmanagerId: strconv.Itoa(StrJobManagerID), | |||||
| } | |||||
| respH, err := s.svcCtx.ACRpc.HistoryJobDetail(s.ctx, reqH) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| taskRespH, err := ConvertType[hpcAC.HistoryJobDetailResp](respH, nil) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| return taskRespH, nil | |||||
| } | } | ||||
| func (s ShuguangHpc) QuerySpecs() (interface{}, error) { | func (s ShuguangHpc) QuerySpecs() (interface{}, error) { | ||||
| //TODO implement me | |||||
| panic("implement me") | |||||
| var resp types.GetResourceSpecsResp | |||||
| for k, v := range RESOURCESPECS { | |||||
| var respec types.ResourceSpecSl | |||||
| respec.SpecId = k | |||||
| respec.SpecName = v | |||||
| respec.ParticipantId = s.participant.Id | |||||
| respec.ParticipantName = s.participant.Name | |||||
| resp.ResourceSpecs = append(resp.ResourceSpecs, &respec) | |||||
| } | |||||
| return resp, nil | |||||
| } | } | ||||
| func (s ShuguangHpc) DeleteTask(taskId string) (interface{}, error) { | func (s ShuguangHpc) DeleteTask(taskId string) (interface{}, error) { | ||||
| //req := hpcAC.DeleteJobReq{} | |||||
| //TODO implement me | //TODO implement me | ||||
| panic("implement me") | panic("implement me") | ||||
| } | } | ||||
| @@ -209,6 +209,17 @@ func ConvertType[T any](in *T, participant *models.StorelinkCenter) (interface{} | |||||
| var resp types.SubmitLinkTaskResp | var resp types.SubmitLinkTaskResp | ||||
| inresp := (interface{})(in).(*hpcAC.SubmitTaskAiResp) | inresp := (interface{})(in).(*hpcAC.SubmitTaskAiResp) | ||||
| if inresp.Code == "0" { | |||||
| resp.Success = true | |||||
| resp.TaskId = inresp.Data | |||||
| } else { | |||||
| resp.Success = false | |||||
| resp.ErrorMsg = inresp.Msg | |||||
| } | |||||
| return resp, nil | |||||
| case *hpcAC.SubmitJobResp: | |||||
| var resp types.SubmitLinkTaskResp | |||||
| inresp := (interface{})(in).(*hpcAC.SubmitJobResp) | |||||
| if inresp.Code == "0" { | if inresp.Code == "0" { | ||||
| resp.Success = true | resp.Success = true | ||||
| resp.TaskId = inresp.Data | resp.TaskId = inresp.Data | ||||
| @@ -270,6 +281,44 @@ func ConvertType[T any](in *T, participant *models.StorelinkCenter) (interface{} | |||||
| resp.Task = nil | resp.Task = nil | ||||
| } | } | ||||
| return resp, nil | |||||
| case *hpcAC.GetJobDetailResp: | |||||
| var resp types.GetLinkTaskResp | |||||
| inresp := (interface{})(in).(*hpcAC.GetJobDetailResp) | |||||
| if inresp.Code == "0" { | |||||
| resp.Success = true | |||||
| var task types.TaskSl | |||||
| task.TaskId = inresp.Data.JobId | |||||
| task.TaskName = inresp.Data.JobName | |||||
| task.TaskStatus = AcStatus[inresp.Data.JobStatus] | |||||
| task.StartedAt = timeutils.StringToUnixTime(inresp.Data.JobStartTime) | |||||
| task.CompletedAt = timeutils.StringToUnixTime(inresp.Data.JobEndTime) | |||||
| resp.Task = &task | |||||
| } else { | |||||
| resp.Success = false | |||||
| resp.ErrorMsg = inresp.Msg | |||||
| resp.Task = nil | |||||
| } | |||||
| return resp, nil | |||||
| case *hpcAC.HistoryJobDetailResp: | |||||
| var resp types.GetLinkTaskResp | |||||
| inresp := (interface{})(in).(*hpcAC.HistoryJobDetailResp) | |||||
| if inresp.Code == "0" { | |||||
| resp.Success = true | |||||
| var task types.TaskSl | |||||
| task.TaskId = inresp.Data.JobId | |||||
| task.TaskName = inresp.Data.JobName | |||||
| task.TaskStatus = AcStatus[inresp.Data.JobState] | |||||
| task.StartedAt = timeutils.StringToUnixTime(inresp.Data.JobStartTime) | |||||
| task.CompletedAt = timeutils.StringToUnixTime(inresp.Data.JobEndTime) | |||||
| resp.Task = &task | |||||
| } else { | |||||
| resp.Success = false | |||||
| resp.ErrorMsg = inresp.Msg | |||||
| resp.Task = nil | |||||
| } | |||||
| return resp, nil | return resp, nil | ||||
| case *octopus.DeleteTrainJobResp: | case *octopus.DeleteTrainJobResp: | ||||
| var resp types.DeleteLinkTaskResp | var resp types.DeleteLinkTaskResp | ||||
| @@ -24,7 +24,7 @@ require ( | |||||
| github.com/rs/zerolog v1.28.0 | github.com/rs/zerolog v1.28.0 | ||||
| github.com/shopspring/decimal v1.3.1 | github.com/shopspring/decimal v1.3.1 | ||||
| github.com/zeromicro/go-zero v1.6.0 | github.com/zeromicro/go-zero v1.6.0 | ||||
| gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231207021053-376383ea3c38 | |||||
| gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231207111119-cdecc6b118c8 | |||||
| gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d | gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d | ||||
| gitlink.org.cn/jcce-pcm/pcm-participant-kubernetes v0.0.0-20231128034759-01d57082e120 | gitlink.org.cn/jcce-pcm/pcm-participant-kubernetes v0.0.0-20231128034759-01d57082e120 | ||||
| gitlink.org.cn/jcce-pcm/pcm-participant-modelarts v0.0.0-20231101085149-724c7c4cc090 | gitlink.org.cn/jcce-pcm/pcm-participant-modelarts v0.0.0-20231101085149-724c7c4cc090 | ||||
| @@ -997,8 +997,8 @@ github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7 | |||||
| github.com/zeromicro/go-zero v1.5.1/go.mod h1:bGYm4XWsGN9GhDsO2O2BngpVoWjf3Eog2a5hUOMhlXs= | github.com/zeromicro/go-zero v1.5.1/go.mod h1:bGYm4XWsGN9GhDsO2O2BngpVoWjf3Eog2a5hUOMhlXs= | ||||
| github.com/zeromicro/go-zero v1.6.0 h1:UwSOR1lGZ2g7L0S07PM8RoneAcubtd5x//EfbuNucQ0= | github.com/zeromicro/go-zero v1.6.0 h1:UwSOR1lGZ2g7L0S07PM8RoneAcubtd5x//EfbuNucQ0= | ||||
| github.com/zeromicro/go-zero v1.6.0/go.mod h1:E9GCFPb0SwsTKFBcFr9UynGvXiDMmfc6fI5F15vqvAQ= | github.com/zeromicro/go-zero v1.6.0/go.mod h1:E9GCFPb0SwsTKFBcFr9UynGvXiDMmfc6fI5F15vqvAQ= | ||||
| gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231207021053-376383ea3c38 h1:tKVL4JcF1P+rntJd4hFg+MtVgsGmyhnisEaME8tF7J0= | |||||
| gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231207021053-376383ea3c38/go.mod h1:ySZHK8NpHn4gjbLoOtJbSEUDiYZVwjbnFAcG71gXPgg= | |||||
| gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231207111119-cdecc6b118c8 h1:J2vJNi4xlWApxpQXizyNvAbvj3qjXep18J3XJrGBGwc= | |||||
| gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231207111119-cdecc6b118c8/go.mod h1:ySZHK8NpHn4gjbLoOtJbSEUDiYZVwjbnFAcG71gXPgg= | |||||
| gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d h1:DHjl/rLuH2gKYtY0MKMGNQDHFT12APg25RlMUQo+tHk= | gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d h1:DHjl/rLuH2gKYtY0MKMGNQDHFT12APg25RlMUQo+tHk= | ||||
| gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d/go.mod h1:r/KLzUpupCV5jdxSfgDhc2pVjP0fBi3VhAWRttsBn30= | gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d/go.mod h1:r/KLzUpupCV5jdxSfgDhc2pVjP0fBi3VhAWRttsBn30= | ||||
| gitlink.org.cn/jcce-pcm/pcm-participant-kubernetes v0.0.0-20231128034759-01d57082e120 h1:4mUD/FW+i948cpTI9faCgnIUItZW3eoA1UdPsDnzK1M= | gitlink.org.cn/jcce-pcm/pcm-participant-kubernetes v0.0.0-20231128034759-01d57082e120 h1:4mUD/FW+i948cpTI9faCgnIUItZW3eoA1UdPsDnzK1M= | ||||