2014-02-24 1 views
3

Groovy를 사용하는 Jenkins의 집행자 수를 설정하려고합니다. hudson.model.Hudson.instance.setNumExecutors (int) 메서드를 찾았지만 실제로 작동하지 않는 것 같습니다. 문제는 Groovy 스크립트를 실행 한 후에 수정 된 값이 구성 패널에 나타나지만 실제로 변경된 패널에서 '저장'을 클릭해야한다는 것입니다. 여기 Groovy를 사용하는 Jenkins의 집행자 수 설정

은 (젠킨스 그루비 플러그인 빌드 단계로 실행) 코드입니다 :

import hudson.model.* 

// Initial number of executors is 1, let's increase the number of executors to 2 
Hudson hudson = Hudson.getInstance() 
hudson.setNumExecutors(2) 
hudson.save() 

def job = hudson.getJob("some_other_job") 
def future = job.scheduleBuild2(0, new Cause.UpstreamCause(build)) 
subBuild = future.get() 

// Set the number of executors back to 1 
hudson.setNumExecutors(1) 
hudson.save() 

답변

5

해결책은 setNumExecutors()을 호출 한 후 hudson.setNodes(hudson.getNodes())을 호출하는 것입니다.

0

모든 것이 당신이 변경이 소리 후 스틱 만들기 위해 수동으로 저장 버튼을 눌러야 제외하고 예상대로 작동하는 경우 변경 한 후에 Jenkins 인스턴스에 save으로 전화하지 않으 셨습니다.

+0

처음에는 생각했지만 save()를 호출 해 보았지만 아무 것도 변경하지 않았습니다. 여전히 동일한 동작을 봅니다. – s4nk

+0

몇 가지 코드를 게시하면 어떤 일이 벌어지는 지 확인할 수 있습니다. – ubiquibacon

+0

코드가 추가되었습니다. 처음에는 Executor가 1 명인 것을 볼 수 있듯이 새로운 Executor를 추가하여 작업을 스케쥴합니다. 새 실행 프로그램이 추가되지 않으므로 스크립트에서 예약 된 작업을 시작할 수 없으므로 모든 것이 차단됩니다. – s4nk

관련 문제