go 調用jenkins的api來幫我們實現一部分操作 適用於批量執行同一個任務 亦或者要結合cmdb
package main
import (
"fmt"
"github.com/bndr/gojenkins"
"log"
)
func main() {
jenkins := gojenkins.CreateJenkins(nil, "url", "admin", "xxx")
_, err := jenkins.Init()
if err != nil {
fmt.Println(err)
}
//連接成功
fmt.Println("is ok")
//獲取節點狀態
nodes ,_ := jenkins.GetAllNodes()
for _,node := range nodes {
node.Poll()
if ok,_ := node.IsOnline();ok {
nodename := node.GetName()
log.Printf("node is %s",nodename)
}
}
//獲取任務信息
jobs ,err := jenkins.GetAllJobNames()
if err != nil {
fmt.Println(err)
}
for _,job := range jobs {
fmt.Println(job.Name,job.Url)
}
test := map[string]string{"aa":"/etc","bb":"cc"}
a,err := jenkins.BuildJob("test",test)
if err != nil {
fmt.Println(err)
}
fmt.Println(a)
al ,err := jenkins.CopyJob("test","test-all")
fmt.Println(al)
if err != nil {
fmt.Println(err)
return
}
//aaa ,err := jenkins.GetJob("test",)
//if err != nil {
// fmt.Println(err)
// return
//}
}