forked from JointCloud/pcm-hpc
65 lines
1.6 KiB
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())
|
|
}
|