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