From d7556a9c1f04dfec44c20f48d6d2b090c1c6d074 Mon Sep 17 00:00:00 2001 From: tzwang Date: Fri, 8 Dec 2023 10:56:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=98=E7=AE=97=E8=81=94=E5=8A=A8=E8=B0=83?= =?UTF-8?q?=E6=95=B44?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 2a1ae75d611eb5627610f29b8db92da308d2e32d --- api/desc/storelink/pcm-storelink.api | 10 +++---- api/internal/storeLink/shuguangHpc.go | 43 +++++++++++++++++++-------- api/internal/storeLink/storeLink.go | 38 ++++++++++++++++------- 3 files changed, 63 insertions(+), 28 deletions(-) diff --git a/api/desc/storelink/pcm-storelink.api b/api/desc/storelink/pcm-storelink.api index d6ac2361..cb04f4fa 100644 --- a/api/desc/storelink/pcm-storelink.api +++ b/api/desc/storelink/pcm-storelink.api @@ -47,11 +47,11 @@ type ( SubmitLinkTaskReq { PartId int64 `json:"partId"` - ImageId string `json:"imageId"` - Cmd string `json:"cmd"` - Params []*ParamSl `json:"params"` - Envs []*EnvSl `json:"envs"` - ResourceId string `json:"resourceId"` + ImageId string `json:"imageId,optional"` + Cmd string `json:"cmd,optional"` + Params []*ParamSl `json:"params,optional"` + Envs []*EnvSl `json:"envs,optional"` + ResourceId string `json:"resourceId,optional"` } EnvSl { diff --git a/api/internal/storeLink/shuguangHpc.go b/api/internal/storeLink/shuguangHpc.go index dad2358e..10bb9990 100644 --- a/api/internal/storeLink/shuguangHpc.go +++ b/api/internal/storeLink/shuguangHpc.go @@ -3,6 +3,7 @@ package storeLink import ( "context" "errors" + "fmt" "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/types" @@ -40,9 +41,16 @@ const ( GAP_PPN = "" GAP_NGPU = "" GAP_MULTI_SUB = "" + StrJobInfoMap = "%d,%s:%s:" + Username = "acgnnmfbwo" ) var RESOURCEMAP = map[string]ResourceSpec{ + "FPOqD5Cx8iNYqawEgDrAxLdrszp4Tmhl": { + GAP_NNODE: "1", + GAP_NPROC: "1", + GAP_NDCU: "1", + }, "Nd99eGNoBFC2ZTycKDlqD37heWTOmrMS": { GAP_NNODE: "1", GAP_NPROC: "2", @@ -91,6 +99,7 @@ var RESOURCEMAP = map[string]ResourceSpec{ } var RESOURCESPECS = map[string]string{ + "FPOqD5Cx8iNYqawEgDrAxLdrszp4Tmhl": "1*NODE, CPU:1, 1*DCU", "Nd99eGNoBFC2ZTycKDlqD37heWTOmrMS": "1*NODE, CPU:2, 1*DCU", "uAmLkz6jgSZkC6o8JywG7Yo2aiFPPOBO": "1*NODE, CPU:4, 2*DCU", "D71OZQYrRabJc2nfL2GDWOdLEfbiMzYH": "1*NODE, CPU:8, 4*DCU", @@ -183,7 +192,7 @@ func (s ShuguangHpc) SubmitTask(imageId string, cmd string, envs []string, param }, } - updateRequestByResouceId(resourceId, req) + updateRequestByResourceId(resourceId, req) resp, err := s.svcCtx.ACRpc.SubmitJob(s.ctx, req) if err != nil { @@ -210,14 +219,12 @@ func (s ShuguangHpc) QueryTask(taskId string) (interface{}, error) { return nil, err } - taskRespC, err := ConvertType[hpcAC.GetJobDetailResp](respC, nil) - if err != nil { - return nil, err - } - //实时作业检查是否成功 - taskResp := taskRespC.(types.GetLinkTaskResp) - if taskResp.Task != nil { + if respC.Data != nil { + taskRespC, err := ConvertType[hpcAC.GetJobDetailResp](respC, nil) + if err != nil { + return nil, err + } return taskRespC, nil } @@ -256,13 +263,25 @@ func (s ShuguangHpc) QuerySpecs() (interface{}, error) { } func (s ShuguangHpc) DeleteTask(taskId string) (interface{}, error) { - //req := hpcAC.DeleteJobReq{} + strJobInfoMap := fmt.Sprintf(StrJobInfoMap, StrJobManagerID, Username, taskId) + req := &hpcAC.DeleteJobReq{ + StrJobInfoMap: strJobInfoMap, + } + resp, err := s.svcCtx.ACRpc.DeleteJob(s.ctx, req) + if err != nil { + return nil, err + } - //TODO implement me - panic("implement me") + //转换成统一返回类型 + taskResp, err := ConvertType[hpcAC.DeleteJobResp](resp, nil) + if err != nil { + return nil, err + } + + return taskResp, nil } -func updateRequestByResouceId(resourceId string, req *hpcAC.SubmitJobReq) { +func updateRequestByResourceId(resourceId string, req *hpcAC.SubmitJobReq) { spec := RESOURCEMAP[resourceId] req.MapAppJobInfo.GAP_NNODE = spec.GAP_NNODE req.MapAppJobInfo.GAP_NPROC = spec.GAP_NPROC diff --git a/api/internal/storeLink/storeLink.go b/api/internal/storeLink/storeLink.go index 63c9edcd..cac8d642 100644 --- a/api/internal/storeLink/storeLink.go +++ b/api/internal/storeLink/storeLink.go @@ -38,17 +38,19 @@ type Linkage interface { } const ( - PY_PARAM_PREFIX = "--" - SPACE = " " - UNDERSCORE = "_" - EQUAL = "=" - COMMA = "," - TYPE_OCTOPUS = "1" - TYPE_MODELARTS = "2" - TYPE_SHUGUANGAI = "3" - OCTOPUS = "Octopus" - MODELARTS = "Modelarts" - SHUGUANGAI = "ShuguangAi" + PY_PARAM_PREFIX = "--" + SPACE = " " + UNDERSCORE = "_" + EQUAL = "=" + COMMA = "," + TYPE_OCTOPUS = "1" + TYPE_MODELARTS = "2" + TYPE_SHUGUANGAI = "3" + TYPE_SHUGUANGHPC = "4" + OCTOPUS = "Octopus" + MODELARTS = "Modelarts" + SHUGUANGAI = "ShuguangAi" + SHUGUANGHPC = "ShuguangHpc" ) var ( @@ -61,6 +63,7 @@ var ( "1": OCTOPUS, "2": MODELARTS, "3": SHUGUANGAI, + "4": SHUGUANGHPC, } ) @@ -79,6 +82,9 @@ func NewStoreLink(ctx context.Context, svcCtx *svc.ServiceContext, participant * case TYPE_SHUGUANGAI: linkStruct := NewShuguangAi(ctx, svcCtx, participant) return &StoreLink{ILinkage: linkStruct} + case TYPE_SHUGUANGHPC: + linkStruct := NewShuguangHpc(ctx, svcCtx, participant) + return &StoreLink{ILinkage: linkStruct} default: return nil } @@ -350,6 +356,16 @@ func ConvertType[T any](in *T, participant *models.StorelinkCenter) (interface{} resp.ErrorMsg = inresp.Msg } return resp, nil + case *hpcAC.DeleteJobResp: + var resp types.DeleteLinkTaskResp + inresp := (interface{})(in).(*hpcAC.DeleteJobResp) + if inresp.Code == "0" { + resp.Success = true + } else { + resp.Success = false + resp.ErrorMsg = inresp.Msg + } + return resp, nil case *octopus.GetResourceSpecsResp: var resp types.GetResourceSpecsResp inresp := (interface{})(in).(*octopus.GetResourceSpecsResp)