Has anyone managed to write pipeline code (or even their own plugin) to 
approve an input using pipeline code from another job (shared library 
NonCPS method or whatever)?

I have this scenario -

*JobA*

input id: 'JOBA_CALLBACK', message: 'Waiting for JobB', parameters: [string(
defaultValue: '', description: 'ID of the callback', name: 'CALLBACK_ID')]

*JobB*

I want to write this with this hypothetical pipeline DSL which doesn't 
exist:

approveInput jobName:'JobA', buildNumber: 1234, , inputId: 'JOBA_CALLBACK', 
parameters: [CALLBACK_ID: '5678']

Job B in my scenario is actually called by an external system and can route 
to a couple of other jobs based on job parameters (so I cannot simply put 
Job B code into A).

CloudBees support recommended that I use a REST call-back onto Jenkins to 
do this (REST call onto Jenkins from JobB), 

I do have this and it works, the code looks like this using the HTTP 
Request plugin:

def REQUEST_URL = 
"${env.JENKINS_URL}/job/JobA/1234/wfapi/inputSubmit?inputId=V6_CALLBACK".
toString()

def formJsonParamUrlEncoded = java.net.URLEncoder.encode(
"{\"parameter\":[{\"name\":\"CALLBACK_ID\",\"value\":5678]}").toString()

request = httpRequest authentication: 'LOCAL_JENKINS',
 consoleLogResponseBody: true,
 customHeaders: [[name: 'content-type', value: 
'application/x-www-form-urlencoded']],
 httpMode: 'POST',
 requestBody: "json=${formJsonParamUrlEncoded}",
 url: REQUEST_URL,
 validResponseCodes: '200'

echo "Request returned: ${request.toString()}"


However this does introduce some failures into our system when our IT folks 
have outages that affect our authentication and such like (the REST call to 
Jenkins has authentication).

I would like to remove this possibility of failure hence looking at code to 
do it.

I feel that there ought to be a way to call Jenkins internals to do this, 
but probably it would be best to write a plugin that implements the 
hypothetical DSL I have.

If I did write a plugin, would others find this useful?

--Bill

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/63a511e7-c6f7-408e-a05d-699c4b6d850b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to