未验证 提交 cc1114f8 编写于 作者: LinuxSuRen's avatar LinuxSuRen 提交者: GitHub

Change the job edit api url (#148)

* Change the job edit api url

* Update go.sum file

* Add test cases for getting and updating pipeline job
上级 21d22ffd
......@@ -137,74 +137,22 @@ func (q *JobClient) GetJobTypeCategories() (jobCategories []JobCategory, err err
return
}
func (q *JobClient) UpdatePipeline(name, script string) (err error) {
// GetPipeline return the pipeline object
func (q *JobClient) GetPipeline(name string) (pipeline *Pipeline, err error) {
path := parseJobPath(name)
api := fmt.Sprintf("%s/%s/wfapisu/update", q.URL, path)
var (
req *http.Request
response *http.Response
)
formData := url.Values{"script": {script}}
payload := strings.NewReader(formData.Encode())
req, err = http.NewRequest("POST", api, payload)
if err == nil {
q.AuthHandle(req)
} else {
return
}
if err = q.CrumbHandle(req); err != nil {
log.Fatal(err)
}
req.Header.Add(util.CONTENT_TYPE, util.APP_FORM)
client := q.GetClient()
if response, err = client.Do(req); err == nil {
code := response.StatusCode
var data []byte
data, err = ioutil.ReadAll(response.Body)
if code == 200 {
fmt.Println("updated")
} else {
fmt.Println("code", code)
log.Fatal(string(data))
}
} else {
fmt.Println("request is error")
log.Fatal(err)
}
api := fmt.Sprintf("%s/restFul", path)
err = q.RequestWithData("GET", api, nil, nil, 200, &pipeline)
return
}
func (q *JobClient) GetPipeline(name string) (pipeline *Pipeline, err error) {
// UpdatePipeline updates the pipeline script
func (q *JobClient) UpdatePipeline(name, script string) (err error) {
path := parseJobPath(name)
api := fmt.Sprintf("%s/%s/wfapisu/script", q.URL, path)
var (
req *http.Request
response *http.Response
)
req, err = http.NewRequest("GET", api, nil)
if err == nil {
q.AuthHandle(req)
} else {
return
}
api := fmt.Sprintf("%s/restFul/update", path)
client := q.GetClient()
if response, err = client.Do(req); err == nil {
code := response.StatusCode
var data []byte
data, err = ioutil.ReadAll(response.Body)
if code == 200 {
pipeline = &Pipeline{}
err = json.Unmarshal(data, pipeline)
} else {
log.Fatal(string(data))
}
} else {
log.Fatal(err)
}
formData := url.Values{"script": {script}}
payload := strings.NewReader(formData.Encode())
err = q.RequestWithoutData("POST", api, map[string]string{util.CONTENT_TYPE: util.APP_FORM}, payload, 200)
return
}
......
......@@ -249,6 +249,23 @@ var _ = Describe("job test", func() {
})
})
Context("GetPipeline", func() {
It("simple case, should success", func() {
PrepareForPipelineJob(roundTripper, jobClient.URL, "", "")
job, err := jobClient.GetPipeline("test")
Expect(err).To(BeNil())
Expect(job.Script).To(Equal("script"))
})
})
Context("UpdatePipeline", func() {
It("simple case, should success", func() {
PrepareForUpdatePipelineJob(roundTripper, jobClient.URL, "", "")
err := jobClient.UpdatePipeline("test", "")
Expect(err).To(BeNil())
})
})
Context("Delete", func() {
It("delete a job", func() {
jobName := "fakeJob"
......
......@@ -163,3 +163,44 @@ func RequestCrumb(roundTripper *mhttp.MockRoundTripper, rootURL string) (
RoundTrip(requestCrumb).Return(responseCrumb, nil)
return
}
// PrepareForPipelineJob only for test
func PrepareForPipelineJob(roundTripper *mhttp.MockRoundTripper, rootURL, user, passwd string) (
request *http.Request, response *http.Response) {
request, _ = http.NewRequest("GET", fmt.Sprintf("%s/job/test/restFul", rootURL), nil)
response = &http.Response{
StatusCode: 200,
Proto: "HTTP/1.1",
Request: request,
Body: ioutil.NopCloser(bytes.NewBufferString(`{"type":null,"displayName":null,"script":"script","sandbox":true}`)),
}
roundTripper.EXPECT().
RoundTrip(request).Return(response, nil)
if user != "" && passwd != "" {
request.SetBasicAuth(user, passwd)
}
return
}
// PrepareForUpdatePipelineJob only for test
func PrepareForUpdatePipelineJob(roundTripper *mhttp.MockRoundTripper, rootURL, user, passwd string) {
request, _ := http.NewRequest("POST", fmt.Sprintf("%s/job/test/restFul/update", rootURL), nil)
request.Header.Add("CrumbRequestField", "Crumb")
response := &http.Response{
StatusCode: 200,
Proto: "HTTP/1.1",
Request: request,
Body: ioutil.NopCloser(bytes.NewBufferString("")),
}
roundTripper.EXPECT().
RoundTrip(NewRequestMatcher(request)).Return(response, nil)
// common crumb request
requestCrumb, _ := RequestCrumb(roundTripper, rootURL)
if user != "" && passwd != "" {
request.SetBasicAuth(user, passwd)
requestCrumb.SetBasicAuth(user, passwd)
}
}
......@@ -16,6 +16,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/gosuri/uilive v0.0.3 h1:kvo6aB3pez9Wbudij8srWo4iY6SFTTxTKOkb+uRCE8I=
......@@ -25,6 +26,7 @@ github.com/gosuri/uiprogress v0.0.1/go.mod h1:C1RTYn4Sc7iEyf6j8ft5dyoZ4212h8G1ol
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ=
github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A=
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
......@@ -92,7 +94,9 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262 h1:qsl9y/CJx34tuA7QCPNp86J
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册