2013-08-26 69 views
0

也許這是一種愚蠢的做法,但我試圖找出最好的一個。從使用Python JenkinsAPI,我使用Jenkins:將節點標記爲離線獲取403 Forbidden

job.invoke("jobToken",False,False,3,5,{"NODE": node_name}). 

作業本身正試圖以紀念節點作爲臨時離線在特定節點上運行的作業。作業運行的內容在作業配置屏幕的Build - > Execute Shell - > Command中指定。
使用

wget "http://jenkins/computer/${NODE}/toggleOffline?offlineMessage=Taken_down" 

我得到控制檯輸出一個403 Forbidden錯誤。
使用

curl "http://jenkins/computer/${NODE}/toggleOffline?offlineMessage=Taken_down" 

我得到的HTML響應說: 「需要驗證」。 (也在控制檯輸出上)。
所以我的問題是如何從作業內標記節點脫機。
謝謝。

回答

1

我認爲你必須添加用戶名和密碼

curl -X POST "http://jenkins/computer/${NODE}/toggleOffline?offlineMessage=Taken_down" --user username:password 

我看到這個在: How can a Jenkins user authentication details be "passed" to a script which uses Jenkins API to create jobs?

+0

謝謝,這個效果很好,但我確實想擺脫掉這種「硬編碼」爲你的鏈接的人問。在節點X上運行的作業,我想標記脫機節點X本身。我雖然沒有特殊的憑據需要。我可以使用我們的「root」用戶API令牌,但這似乎不是一個好的選擇(在我們的作業中「發佈」這個令牌)。 – bomba6