存算联动调整4

This commit is contained in:
tzwang 2023-12-08 10:56:21 +08:00
parent 5fb7b0313b
commit 2a1ae75d61
3 changed files with 63 additions and 28 deletions

View File

@ -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 {

View File

@ -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

View File

@ -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)