diff --git a/adaptor/slurm/slurmCore/api/internal/logic/submitjoblogic.go b/adaptor/slurm/slurmCore/api/internal/logic/submitjoblogic.go index 4aad7daf..dfeea4d9 100644 --- a/adaptor/slurm/slurmCore/api/internal/logic/submitjoblogic.go +++ b/adaptor/slurm/slurmCore/api/internal/logic/submitjoblogic.go @@ -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 diff --git a/adaptor/slurm/slurmCore/api/internal/types/types.go b/adaptor/slurm/slurmCore/api/internal/types/types.go index 39c8a211..475bb6b0 100644 --- a/adaptor/slurm/slurmCore/api/internal/types/types.go +++ b/adaptor/slurm/slurmCore/api/internal/types/types.go @@ -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 { diff --git a/adaptor/slurm/slurmCore/api/slurmCore.api b/adaptor/slurm/slurmCore/api/slurmCore.api index 5cbdfc94..3e8171da 100644 --- a/adaptor/slurm/slurmCore/api/slurmCore.api +++ b/adaptor/slurm/slurmCore/api/slurmCore.api @@ -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) diff --git a/adaptor/slurm/slurmShuguang/rpc/internal/logic/submitjoblogic.go b/adaptor/slurm/slurmShuguang/rpc/internal/logic/submitjoblogic.go index 9ad8b9dc..024c55b3 100644 --- a/adaptor/slurm/slurmShuguang/rpc/internal/logic/submitjoblogic.go +++ b/adaptor/slurm/slurmShuguang/rpc/internal/logic/submitjoblogic.go @@ -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 }