pcm-hpc/ac/job_impl.go

65 lines
1.6 KiB
Go

package ac
import (
"encoding/json"
"github.com/go-resty/resty/v2"
"log"
"strconv"
"strings"
"sync"
)
type job struct {
sync.RWMutex
client *client
options *JobOptions
log log.Logger
}
func newJob(client *client, options *JobOptions) (*job, error) {
job := &job{
RWMutex: sync.RWMutex{},
client: client,
options: options,
log: log.Logger{},
}
return job, nil
}
func (j *job) ListJob(listJobReq ListJobReq) string {
jobUrl := "/hpc/openapi/v2/jobs?"
clusterId := 1638523853
params := map[string]string{
"strClusterIDList": strconv.FormatInt(int64(clusterId), 10),
}
httpClient := resty.New().R()
result, _ := httpClient.SetHeader("token", j.client.token).SetQueryParams(params).Get(j.client.baseEndpoint + jobUrl)
return string(result.Body())
}
func (j *job) GetJob(getJobReq GetJobReq) string {
//TODO implement me
panic("implement me")
}
func (j *job) CancelJob(cancelJobReq CancelJobReq) string {
//TODO implement me
panic("implement me")
}
func (j *job) SubmitJob(submitJobReq SubmitJobReq) string {
jobSubmitUrl := "/hpc/openapi/v2/apptemplates/{apptype}/{appname}/job"
jobSubmitUrl = strings.Replace(jobSubmitUrl, "{apptype}", submitJobReq.Apptype, -1)
jobSubmitUrl = strings.Replace(jobSubmitUrl, "{appname}", submitJobReq.Appname, -1)
httpClient := resty.New().R()
jsonStr, _ := json.Marshal(submitJobReq)
params := map[string]string{
"content-type": "application/json",
"token": j.client.token,
}
result, _ := httpClient.SetHeaders(params).SetBody(jsonStr).Post(j.client.baseEndpoint + jobSubmitUrl)
return string(result.Body())
}