go調用jenkins api

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
	//}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章