2017-11-09 11 views
1

Jenkins의 "Extensible Choice"플러그인을 사용하여 매개 변수를 AWS RDS DB 인스턴스 이름 목록으로 채 웁니다.Jenkins 매개 변수에 선택 목록을 채우려하지만 매개 변수가 비어있는 경우 이유는 무엇입니까?

"Choice provider"에서 "System groovy choice parameter"를 선택했습니다.

이 DB의 목록을 반환하도록되어 그루비 코드 :

나는 쉘에서 명령을 실행하면
//Create buffer to capture command's Standard Out 
def sout = new StringBuffer(), serr = new StringBuffer() 

//Define here the shell command you would like to execute 
def proc = 'aws rds describe-db-instances | grep DBInstanceIdentifier | grep -v Read | awk "{print \$2}" | sed "s/\"//g"'.execute() 

//Capture command output into buffer 
proc.consumeProcessOutput(sout, serr) 

//Time to wait for command to complete 
proc.waitForOrKill(1000) 

//Converts command output to a list of choices, split by whitespace 
return sout.tokenize() 

, 내가 얻을 제대로 출력 :

[[email protected] ~]$ aws rds describe-db-instances | grep DBInstanceIdentifier | grep -v Read | awk "{print \$2}" | sed "s/\"//g" 
company 
company-dev-70-mysql 
dev-rds-2017-10-02 
company-check-woocommerce 
prod 

그러나 때 작업을 실행하면 드롭 다운 메뉴가 비어 있습니다.

내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

+0

어쩌면 당신이 그것을 살해? --waitForOrKill (1000) – basiljames

+0

이미 "20000"으로 변경했는데 메뉴가 비어 있습니다. –

답변

0

두 번째는 입니다. StringBuilder 버퍼가 아닙니다.

데프 SOUT = 새가 완료되기 전에 StringBuffer를(), SERR = 새의 StringBuilder()가

+0

고마워, 고칠 수는 있어도 여전히 메뉴가 채워지지 않습니다 ... 다른 아이디어? –

+0

jenkins 사용자가 명령을 실행할 수 있는지 확인하십시오. –

+0

예, jenkins 사용자가 질문에 표시된대로 적절한 출력을 얻습니다. –