import hudson.model.*
import jenkins.model.*
def resolver = Thread.currentThread().executable.buildVariableResolver
def parent_job = resolver.resolve("upstream_job")
def parent_build_number = resolver.resolve("upstream_bn")
def upstreamResult = Hudson.instance.getJob("${parent_job}").getLastBuild().result
if(upstreamResult.equals(hudson.model.Result.FAILURE)) {
upstreamResult = "fail"
} else {
upstreamResult = "${upstreamResult}".toLowerCase()
}
println "upstream result: ${upstreamResult}"
def newParams = null
def pl = new ArrayList<StringParameterValue>()
pl.add(new StringParameterValue('build_result', upstreamResult))
def oldParams = build.getAction(ParametersAction.class)
if(oldParams != null) {
newParams = oldParams.createUpdated(pl)
build.actions.remove(oldParams)
} else {
newParams = new ParametersAction(pl)
}
build.addAction(newParams)