You could throw a custom Exception with the output contained within. /B
On Thu, Apr 6, 2017 at 11:31 AM, Christian McHugh < [email protected]> wrote: > Greetings, > > For the saltstack plugin to support pipeline, it attempts to return the > job output. Since it should always return the output, in case of a problem, > the build is marked as a failure, but processing still occurs after the > salt step. > > So given a pipeline where a salt message is sent, followed by other things > (such as an echo) > pipeline { > agent { > label "agent1" > } > stages { > stage('run salt') { > steps { > script { > output = salt authtype: 'pam', clientInterface: > local(arguments: '"sleep 5; ls -la"', blockbuild: true, function: > 'cmd.run', jobPollTime: 6, minionTimeout: 4, target: '*', targettype: > 'glob'), credentialsId: 'b5f40401-01b9-4b27-a5e8-8ae94bc90250', > servername: 'http://localhost:8000' > echo output > } > } > } > stage('another thing') { > steps { > echo "next thing" > } > } > } > } > > > If salt runs into a problem, I would still like it to return the output > string, fail the build, but also stop processing. Currently marks the build > as a failure, but since there was no other exception raised, the pipeline > tasks continue > > ... > Some minions returned. Waiting 4 seconds > ERROR: Minions timed out: > ["minion1"] > > > [Pipeline] echo > [{"master":{"return":"total 20\ndrwx------ 3 root root 4096 Mar 25 07:51 > .\ndrwxr-xr-x 25 root root 4096 Mar 30 06:40 ..\n-rw-r--r-- 1 root root 3106 > Oct 22 2015 .bashrc\n-rw-r--r-- 1 root root 148 Aug 17 2015 > .profile\ndrwx------ 2 root root 4096 Mar 25 07:51 .ssh"}}] > [Pipeline] } > [Pipeline] // script > [Pipeline] } > [Pipeline] // stage > [Pipeline] stage > [Pipeline] { (another thing) > [Pipeline] echo > next thing > [Pipeline] } > [Pipeline] // stage > [Pipeline] } > [Pipeline] // node > [Pipeline] End of Pipeline > Finished: FAILURE > > > > I'm not sure how to handle the case of wanting to stop processing while > also returning the salt output. > protected String run() throws Exception { > ... > boolean validFunctionExecution = DoSomeWork(); > > if (!validFunctionExecution) { > listener.error("One or more minion did not return correctly\n"); > > run.setResult(Result.FAILURE); > } > > return saltOutput.toString(); > > } > > > > Does anyone have any advice or thoughts? > > Thanks! > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" 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-dev/4abc0754-31dc-4717-be91-1777f031681a% > 40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-dev/4abc0754-31dc-4717-be91-1777f031681a%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Robert Sandell *Software Engineer* *CloudBees Inc.* -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" 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-dev/CALzHZS2mieb49JAN6mxGBwfNGxdF94to4%3DPxfTr1FyTSu%3Da2yQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
