提交任务代码

This commit is contained in:
tzwang 2023-02-22 15:48:38 +08:00
parent d1dbc2e4b6
commit e73bb0505d
4 changed files with 61 additions and 19 deletions

View File

@ -8,6 +8,7 @@ import (
"context"
"github.com/jinzhu/copier"
"github.com/pkg/errors"
"strconv"
"PCM/adaptor/slurm/slurmCore/api/internal/svc"
"PCM/adaptor/slurm/slurmCore/api/internal/types"
@ -57,9 +58,9 @@ func (l *SubmitJobLogic) SubmitJob(req *types.SubmitJobReq) (resp *types.SubmitJ
return nil, errors.Wrapf(xerr.NewErrMsg("Failed to submit job to Tianhe"), "Failed to submit job to Tianhe err : %v ,req:%+v", err, req)
}
coreResp.Msg = string(tianheResp.SubmitResponseMsg[0].ErrorCode)
//coreResp.Code = tianheResp.SubmitResponseMsg[0].ErrorCode
//coreResp.Data = tianheResp.SubmitResponseMsg[0].JobId
coreResp.Msg = "success"
coreResp.Code = strconv.Itoa(int(tianheResp.SubmitResponseMsg[0].ErrorCode))
coreResp.Data = strconv.Itoa(int(tianheResp.SubmitResponseMsg[0].JobId))
}
return coreResp, nil

View File

@ -266,12 +266,9 @@ type SubmitJobReq struct {
}
type SubmitJobResp struct {
Job_id int32 `json:"job_id"`
Step_id int32 `json:"step_id"`
Error_code int32 `json:"error_code"`
Code string `json:"code"`
Msg string `json:"msg"`
Data string `json:"data"`
Code string `json:"code"` //Error_code 返回码 in Tianhe
Msg string `json:"msg"`
Data string `json:"data"` //Job_id 作业id in Tianhe
}
type MapAppJobInfo struct {

View File

@ -190,11 +190,14 @@ type (
type (
submitJobReq {
SlurmVersion string `json:"slurmVersion"`
SlurmVersion string `json:"slurmVersion"`
/****************parmas from shuguang********************/
Apptype string `json:"apptype"`
Appname string `json:"appname"`
StrJobManagerID int64 `json:"strJobManagerID"`
MapAppJobInfo MapAppJobInfo `json:"mapAppJobInfo"`
/****************parmas from shuguang********************/
Account string `json:"account,omitempty"`
Acctg_freq string `json:"acctg_freq,omitempty"`
@ -282,13 +285,13 @@ type (
}
submitJobResp {
Job_id int32 `json:"job_id"`
Step_id int32 `json:"step_id"`
Error_code int32 `json:"error_code"`
//Job_id int32 `json:"job_id"`
//Step_id int32 `json:"step_id"`
//Error_code int32 `json:"error_code"`
Code string `json:"code"`
Code string `json:"code"` //Error_code 返回码 in Tianhe
Msg string `json:"msg"`
Data string `json:"data"`
Data string `json:"data"` //Job_id 作业id in Tianhe
}
MapAppJobInfo {
@ -351,7 +354,7 @@ service slurmcore-api {
post /scheduleTask (scheduleTaskReq) returns (scheduleTaskResp)
@handler submitJobHandler
post /submitJob (listHistoryJobReq) returns (listHistoryJobResp)
post /submitJob (submitJobReq) returns (submitJobResp)
@handler getRegionHandler
get /getRegion () returns (getRegionResp)

View File

@ -1,7 +1,15 @@
package logic
import (
"PCM/adaptor/slurm/slurmShuguang/rpc/internal/util"
"bytes"
"context"
"encoding/json"
"io/ioutil"
"log"
"net/http"
"strings"
"time"
"PCM/adaptor/slurm/slurmShuguang/rpc/internal/svc"
"PCM/adaptor/slurm/slurmShuguang/rpc/slurmShuguang"
@ -26,9 +34,42 @@ func NewSubmitJobLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SubmitJ
func (l *SubmitJobLogic) SubmitJob(in *slurmShuguang.SubmitJobReq) (*slurmShuguang.SubmitJobResp, error) {
resp := &slurmShuguang.SubmitJobResp{}
resp.Msg = in.Appname
resp.Code = in.Appname
resp.Data = in.Appname
jobSubmitUrl := "hpc/openapi/v2/apptemplates/{apptype}/{appname}/job"
jobSubmitUrl = strings.Replace(jobSubmitUrl, "{apptype}", in.Apptype, -1)
jobSubmitUrl = strings.Replace(jobSubmitUrl, "{appname}", in.Appname, -1)
jsonStr, _ := json.Marshal(in)
req_url, err := http.NewRequest("POST", "https://api01.hpccube.com:65106/"+jobSubmitUrl, bytes.NewBuffer(jsonStr))
Gtoken := util.GetToken()
var token string
if util.GetTokenState(Gtoken) {
token = Gtoken
} else {
token = util.GetToken()
Gtoken = token
}
req_url.Header.Add("content-type", "application/json")
req_url.Header.Add("token", token)
if err != nil {
log.Fatal(err)
}
defer req_url.Body.Close()
c := http.Client{Timeout: time.Duration(3) * time.Second}
//c := &http.Client{Timeout: 5 * time.Second}
respUrl, err := c.Do(req_url)
defer respUrl.Body.Close()
if err != nil {
log.Fatal(err)
}
result, _ := ioutil.ReadAll(respUrl.Body)
json.Unmarshal([]byte(string(result)), &resp)
return resp, nil
}