core.go 779 字节
Newer Older
LinuxSuRen's avatar
LinuxSuRen 已提交
1 2 3 4 5
package client

import (
	"fmt"
	"io/ioutil"
LinuxSuRen's avatar
LinuxSuRen 已提交
6
	"log"
LinuxSuRen's avatar
LinuxSuRen 已提交
7 8 9
	"net/http"
)

LinuxSuRen's avatar
LinuxSuRen 已提交
10 11
type CoreClient struct {
	JenkinsCore
LinuxSuRen's avatar
LinuxSuRen 已提交
12 13
}

LinuxSuRen's avatar
LinuxSuRen 已提交
14 15 16 17 18 19 20 21 22 23 24
// Search find a set of jobs by name
func (q *CoreClient) Restart() (err error) {
	api := fmt.Sprintf("%s/safeRestart", q.URL)
	var (
		req      *http.Request
		response *http.Response
	)

	req, err = http.NewRequest("POST", api, nil)
	if err == nil {
		q.AuthHandle(req)
LinuxSuRen's avatar
LinuxSuRen 已提交
25
	} else {
LinuxSuRen's avatar
LinuxSuRen 已提交
26
		return
LinuxSuRen's avatar
LinuxSuRen 已提交
27 28
	}

LinuxSuRen's avatar
LinuxSuRen 已提交
29 30 31 32 33 34 35
	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 || err != nil {
			log.Fatalf("Error code: %d, response: %s, errror: %v", code, string(data), err)
LinuxSuRen's avatar
LinuxSuRen 已提交
36
		} else {
LinuxSuRen's avatar
LinuxSuRen 已提交
37
			fmt.Println("restart successfully")
LinuxSuRen's avatar
LinuxSuRen 已提交
38 39
		}
	} else {
LinuxSuRen's avatar
LinuxSuRen 已提交
40
		log.Fatal(err)
LinuxSuRen's avatar
LinuxSuRen 已提交
41
	}
LinuxSuRen's avatar
LinuxSuRen 已提交
42
	return
LinuxSuRen's avatar
LinuxSuRen 已提交
43
}