pcm-coordinator/client/task_impl.go

88 lines
2.2 KiB
Go

package client
import (
"io/ioutil"
"k8s.io/apimachinery/pkg/util/json"
"log"
"net/http"
"strings"
"sync"
)
type task struct {
sync.RWMutex
client *client
options *TaskOptions
log log.Logger
}
func newTask(client *client, options *TaskOptions) (*task, error) {
task := &task{
RWMutex: sync.RWMutex{},
client: client,
options: options,
log: log.Logger{},
}
return task, nil
}
func (t *task) PullTaskInfo(pullTaskInfoReq PullTaskInfoReq) (*PullTaskInfoResp, error) {
url := t.client.url + "/pcm/v1/core/pullTaskInfo"
method := "GET"
infoReq := PullTaskInfoReq{AdapterId: pullTaskInfoReq.AdapterId}
jsonStr, _ := json.Marshal(infoReq)
payload := strings.NewReader(string(jsonStr))
client := &http.Client{}
req, _ := http.NewRequest(method, url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := client.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
var resp PullTaskInfoResp
json.Unmarshal(body, &resp)
return &resp, nil
}
func (t *task) PushTaskInfo(pushTaskInfoReq PushTaskInfoReq) (*PushTaskInfoResp, error) {
url := t.client.url + "/pcm/v1/core/pushTaskInfo"
method := "POST"
//infoReq := PullTaskInfoReq{AdapterId: pushTaskInfoReq.AdapterId}
jsonStr, _ := json.Marshal(pushTaskInfoReq)
payload := strings.NewReader(string(jsonStr))
client := &http.Client{}
req, _ := http.NewRequest(method, url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := client.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
var resp PushTaskInfoResp
json.Unmarshal(body, &resp)
return &resp, nil
}
func (t *task) PushResourceInfo(pushResourceInfoReq PushResourceInfoReq) (*PushResourceInfoResp, error) {
url := t.client.url + "/pcm/v1/core/pushResourceInfo"
method := "POST"
//infoReq := PushResourceInfoReq{AdapterId: pushResourceInfoReq.AdapterId}
jsonStr, _ := json.Marshal(pushResourceInfoReq)
payload := strings.NewReader(string(jsonStr))
client := &http.Client{}
req, _ := http.NewRequest(method, url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := client.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
var resp PushResourceInfoResp
json.Unmarshal(body, &resp)
return &resp, nil
}