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.

Reply via email to