我的Jenkins
管道中有下一个可行的代码部分:
saltnodes.each {
node('slave1') {
stage('Salt call') {
saltresult = salt authtype: 'pam', clientInterface: runner(
function: 'state.orch', mods: 'test.deploy', pillarvalue: "$someParams"),
credentialsId: 'mycreds', servername: "http://$it"
println JsonOutput.prettyPrint(saltresult)
}
}
在这部分代码中,我尝试实现"try"
和"catch"
异常处理程序:
import groovy.transform.Field
saltnodes.each {
node('slave1') {
stage('Salt call') {
try{
@Field result = salt authtype: 'pam', clientInterface: runner(
function: 'state.orch', mods: 'test.deploy', pillarvalue: "$someParams"),
credentialsId: 'mycreds', servername: "http://$it"
}
catch (e){
def jsonSlurper = new JsonSlurper()
println jsonSlurper.parseText(result)
}
}
但是当我在这里使用@Filed
转换时,我会得到"Null pointer exception"
如何将"result"
变量传递给"catch"
块以便在那里打印结果变量的内容?
答案 0 :(得分:0)
最后我能够弄明白。 问题是我错误地理解错误输出。错误期间的输出是异常但不是可变内容。
结果我做了下一个:
saltnodes.each {
node('slave1') {
stage('Salt call') {
try{
result = salt authtype: 'pam', clientInterface: runner(
function: 'state.orch', mods: 'test.deploy', pillarvalue: "$someParams"),
credentialsId: 'mycreds', servername: "http://$it"
println result
}
catch (com.waytta.SaltException e){
def jsonSlurper = new JsonSlurper()
println jsonSlurper.parseText(e.getMessage())
}
}