From 3915d1953acbf809602b3dfb025833ab8d629c47 Mon Sep 17 00:00:00 2001 From: tzwang Date: Thu, 7 Dec 2023 11:36:11 +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=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: eb90e99d4740e89ecf1bc2e724a2b9e91578ceb3 --- .../logic/storelink/deletelinkimagelogic.go | 7 ++ .../logic/storelink/deletelinktasklogic.go | 7 ++ .../logic/storelink/getaispecslogic.go | 7 ++ .../logic/storelink/getlinkimagelistlogic.go | 7 ++ .../logic/storelink/getlinktasklogic.go | 7 ++ .../logic/storelink/submitlinktasklogic.go | 4 + .../logic/storelink/uploadlinkimagelogic.go | 7 ++ api/internal/storeLink/shuguangHpc.go | 73 +++++++++++++++++-- go.mod | 2 +- go.sum | 4 +- 10 files changed, 114 insertions(+), 11 deletions(-) diff --git a/api/internal/logic/storelink/deletelinkimagelogic.go b/api/internal/logic/storelink/deletelinkimagelogic.go index fce649d8..3e092aaa 100644 --- a/api/internal/logic/storelink/deletelinkimagelogic.go +++ b/api/internal/logic/storelink/deletelinkimagelogic.go @@ -48,10 +48,17 @@ func (l *DeleteLinkImageLogic) DeleteLinkImage(req *types.DeleteLinkImageReq) (r } storelink := storeLink.NewStoreLink(l.ctx, l.svcCtx, participant) + if storelink == nil { + return nil, nil + } + img, err := storelink.ILinkage.DeleteImage(req.ImageId) if err != nil { return nil, err } + if img == nil { + return nil, nil + } imgResp := img.(types.DeleteLinkImageResp) return &imgResp, nil diff --git a/api/internal/logic/storelink/deletelinktasklogic.go b/api/internal/logic/storelink/deletelinktasklogic.go index ba97e578..420dfad5 100644 --- a/api/internal/logic/storelink/deletelinktasklogic.go +++ b/api/internal/logic/storelink/deletelinktasklogic.go @@ -48,10 +48,17 @@ func (l *DeleteLinkTaskLogic) DeleteLinkTask(req *types.DeleteLinkTaskReq) (resp } storelink := storeLink.NewStoreLink(l.ctx, l.svcCtx, participant) + if storelink == nil { + return nil, nil + } + task, err := storelink.ILinkage.DeleteTask(req.TaskId) if err != nil { return nil, err } + if task == nil { + return nil, nil + } taskResp := task.(types.DeleteLinkTaskResp) return &taskResp, nil diff --git a/api/internal/logic/storelink/getaispecslogic.go b/api/internal/logic/storelink/getaispecslogic.go index 399c46ef..e358f5d8 100644 --- a/api/internal/logic/storelink/getaispecslogic.go +++ b/api/internal/logic/storelink/getaispecslogic.go @@ -48,10 +48,17 @@ func (l *GetAISpecsLogic) GetAISpecs(req *types.GetResourceSpecsReq) (resp *type } storelink := storeLink.NewStoreLink(l.ctx, l.svcCtx, participant) + if storelink == nil { + return nil, nil + } + specs, err := storelink.ILinkage.QuerySpecs() if err != nil { return nil, err } + if specs == nil { + return nil, nil + } specsResp := specs.(types.GetResourceSpecsResp) return &specsResp, nil diff --git a/api/internal/logic/storelink/getlinkimagelistlogic.go b/api/internal/logic/storelink/getlinkimagelistlogic.go index bbe43d2f..99250ca2 100644 --- a/api/internal/logic/storelink/getlinkimagelistlogic.go +++ b/api/internal/logic/storelink/getlinkimagelistlogic.go @@ -48,10 +48,17 @@ func (l *GetLinkImageListLogic) GetLinkImageList(req *types.GetLinkImageListReq) } storelink := storeLink.NewStoreLink(l.ctx, l.svcCtx, participant) + if storelink == nil { + return nil, nil + } + list, err := storelink.ILinkage.QueryImageList() if err != nil { return nil, err } + if list == nil { + return nil, nil + } listResp := list.(types.GetLinkImageListResp) return &listResp, nil diff --git a/api/internal/logic/storelink/getlinktasklogic.go b/api/internal/logic/storelink/getlinktasklogic.go index cd8d9469..b1a04c35 100644 --- a/api/internal/logic/storelink/getlinktasklogic.go +++ b/api/internal/logic/storelink/getlinktasklogic.go @@ -49,10 +49,17 @@ func (l *GetLinkTaskLogic) GetLinkTask(req *types.GetLinkTaskReq) (resp *types.G } storelink := storeLink.NewStoreLink(l.ctx, l.svcCtx, participant) + if storelink == nil { + return nil, nil + } + task, err := storelink.ILinkage.QueryTask(req.TaskId) if err != nil { return nil, err } + if task == nil { + return nil, nil + } taskResp := task.(types.GetLinkTaskResp) return &taskResp, nil diff --git a/api/internal/logic/storelink/submitlinktasklogic.go b/api/internal/logic/storelink/submitlinktasklogic.go index 91e2bc6b..5fc3bae3 100644 --- a/api/internal/logic/storelink/submitlinktasklogic.go +++ b/api/internal/logic/storelink/submitlinktasklogic.go @@ -49,6 +49,10 @@ func (l *SubmitLinkTaskLogic) SubmitLinkTask(req *types.SubmitLinkTaskReq) (resp } storelink := storeLink.NewStoreLink(l.ctx, l.svcCtx, participant) + if storelink == nil { + return nil, nil + } + var params []string if len(req.Params) != 0 { for _, v := range req.Params { diff --git a/api/internal/logic/storelink/uploadlinkimagelogic.go b/api/internal/logic/storelink/uploadlinkimagelogic.go index 2dfc6129..93c579d4 100644 --- a/api/internal/logic/storelink/uploadlinkimagelogic.go +++ b/api/internal/logic/storelink/uploadlinkimagelogic.go @@ -49,10 +49,17 @@ func (l *UploadLinkImageLogic) UploadLinkImage(req *types.UploadLinkImageReq) (r } storelink := storeLink.NewStoreLink(l.ctx, l.svcCtx, participant) + if storelink == nil { + return nil, nil + } + img, err := storelink.ILinkage.UploadImage(req.FilePath) if err != nil { return nil, err } + if img == nil { + return nil, nil + } imgResp := img.(types.UploadLinkImageResp) return &imgResp, nil diff --git a/api/internal/storeLink/shuguangHpc.go b/api/internal/storeLink/shuguangHpc.go index fbd497c4..31d84123 100644 --- a/api/internal/storeLink/shuguangHpc.go +++ b/api/internal/storeLink/shuguangHpc.go @@ -2,8 +2,11 @@ package storeLink import ( "context" + "errors" + "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/pkg/models" + "strings" ) type ShuguangHpc struct { @@ -12,28 +15,82 @@ type ShuguangHpc struct { participant *models.StorelinkCenter } +const ( + SHUGUANGHPC_CUSTOM_RESOURCE_ID = "10240 // 10G" +) + func NewShuguangHpc(ctx context.Context, svcCtx *svc.ServiceContext, participant *models.StorelinkCenter) *ShuguangHpc { return &ShuguangHpc{ctx: ctx, svcCtx: svcCtx, participant: participant} } func (s ShuguangHpc) UploadImage(path string) (interface{}, error) { - //TODO implement me - panic("implement me") + return nil, nil } func (s ShuguangHpc) DeleteImage(imageId string) (interface{}, error) { - //TODO implement me - panic("implement me") + return nil, nil } func (s ShuguangHpc) QueryImageList() (interface{}, error) { - //TODO implement me - panic("implement me") + return nil, nil } func (s ShuguangHpc) SubmitTask(imageId string, cmd string, envs []string, params []string, resourceId string) (interface{}, error) { - //TODO implement me - panic("implement me") + // shuguangHpc提交任务 + + //判断是否resourceId匹配自定义资源Id + if resourceId != SHUGUANGAI_CUSTOM_RESOURCE_ID { + return nil, errors.New("shuguangHpc资源Id不存在") + } + + //环境变量 + var env string + for _, e := range envs { + s := strings.Split(e, COMMA) + env += s[0] + "=" + s[1] + SPACE + } + + //请求 + + req := &hpcAC.SubmitJobReq{ + Apptype: "", + Appname: "", + StrJobManagerID: 0, + MapAppJobInfo: &hpcAC.MapAppJobInfo{ + GAP_CMD_FILE: "echo $TESTDIR; echo $TESTENV; sleep 30", + GAP_NNODE: "1", + GAP_NODE_STRING: "", + GAP_SUBMIT_TYPE: "cmd", + GAP_JOB_NAME: "testSlurmjob1", + GAP_WORK_DIR: "/work/home/acgnnmfbwo/BASE/testSlurmjob1", + GAP_QUEUE: "wzhdtest", + GAP_NPROC: "1", + GAP_PPN: "", + GAP_NGPU: "", + GAP_NDCU: "1", + GAP_WALL_TIME: "01:00:00", + GAP_EXCLUSIVE: "", + GAP_APPNAME: "BASE", + GAP_MULTI_SUB: "", + GAP_STD_OUT_FILE: "/work/home/acgnnmfbwo/BASE/testSlurmjob1/std.out.%j", + GAP_STD_ERR_FILE: "/work/home/acgnnmfbwo/BASE/testSlurmjob1/std.err.%j", + GAP_SCHEDULER_OPT_WEB: "export TESTDIR=/bin/emacs\nexport TESTENV=12345", + }, + } + + resp, err := s.svcCtx.ACRpc.SubmitJob(s.ctx, req) + if err != nil { + return nil, err + } + + //转换成统一返回类型 + submitResp, err := ConvertType[hpcAC.SubmitJobResp](resp, nil) + if err != nil { + return nil, err + } + + return submitResp, nil + } func (s ShuguangHpc) QueryTask(taskId string) (interface{}, error) { diff --git a/go.mod b/go.mod index 8568a235..0ac70997 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/rs/zerolog v1.28.0 github.com/shopspring/decimal v1.3.1 github.com/zeromicro/go-zero v1.6.0 - gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231108025612-8f0044dd7a95 + gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231207021053-376383ea3c38 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-modelarts v0.0.0-20231101085149-724c7c4cc090 diff --git a/go.sum b/go.sum index 4a4311fd..d4dbf037 100644 --- a/go.sum +++ b/go.sum @@ -996,8 +996,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.6.0 h1:UwSOR1lGZ2g7L0S07PM8RoneAcubtd5x//EfbuNucQ0= github.com/zeromicro/go-zero v1.6.0/go.mod h1:E9GCFPb0SwsTKFBcFr9UynGvXiDMmfc6fI5F15vqvAQ= -gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231108025612-8f0044dd7a95 h1:63M79RcLdA1eXXOkDF6DSI46cWdBR6W/EcMvzo9yku0= -gitlink.org.cn/jcce-pcm/pcm-ac v0.0.0-20231108025612-8f0044dd7a95/go.mod h1:ySZHK8NpHn4gjbLoOtJbSEUDiYZVwjbnFAcG71gXPgg= +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-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-kubernetes v0.0.0-20231128034759-01d57082e120 h1:4mUD/FW+i948cpTI9faCgnIUItZW3eoA1UdPsDnzK1M=