2017-04-07 69 views

回答

1

如果你有機會到腳本控制檯,您可以運行這樣的事情:

final jenkins = Jenkins.instance 

jenkins.computers.inject(0) { acc, item -> 
    acc + item.numExecutors 
} 

如果您在沙盒管道運行這一點,你必須有管理員列入白名單的方法在進程內腳本批准(或通過使用白名單的插件)在http://jenkinsUrl/scriptApproval/。您將無法使用inject,因爲現在的JENKINS-26481,但您的管道腳本可能看起來像:

final jenkins = Jenkins.instance 

int executorCount = 0 
for (def computer in jenkins.computers) { 
    executorCount += computer.numExecutors 
} 

// Rest of pipeline 

如果您在管道沙盒不運行,你可以訪問這些對象沒有白名單。

+0

'進口jenkins.model.Jenkins 節點{ 最終詹金斯= Jenkins.instance jenkins.computers.inject(0){ACC,項 - > ACC + item.getNumExecutors() } DEF輸出= SH腳本:「java -jar /home/user1/earms/hazelcast/TestbedThreads.jar」,returnStdout:true}' 當我嘗試運行上面的代碼與管道..我收到以下異常:'org.jenkinsci。 plugins.scriptsecurity.sandbox.RejectedAccessException: 腳本不得使用方法jenkins.model.Jenkins getComputers' – User12345

+0

,我試圖批准以下:Jenkins-> ManageJenkins->進程腳本批准─>批准jenkins.model.jenkins。但不是工作king..could你請幫我解決這個問題.. – User12345

+0

@ User12345你運行使用腳本控制檯(http:// jenkinsUrl /腳本),或通過管道腳本?如果您正在運行沙盒腳本,則需要獲得許可才能執行此操作。 – mkobit