This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-docs.git
commit 07690a8014ef34fcb4cfee88e5524b4585779b2a Merge: 81f61f8a c59ef865 Author: Alex Heneveld <a...@cloudsoft.io> AuthorDate: Mon May 20 14:38:02 2024 +0100 Merge remote-tracking branch 'origin/master' guide/blueprints/workflow/common.md | 40 +++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 19 deletions(-) diff --cc guide/blueprints/workflow/common.md index a2ad6e05,6add6357..66426f1e --- a/guide/blueprints/workflow/common.md +++ b/guide/blueprints/workflow/common.md @@@ -91,12 -93,9 +93,12 @@@ the workflow moves to the following ste Apart from `name` and `id` above, if a step's `condition` is unmet, the other properties set on a step are ignored. +The `if` step can be used for simple conditions, as shown in the next section. + + ### Jumping with "Next" or "Goto" - The common property `next` allows overriding the workflow sequencing, + The common property `next` allows overriding the workflow sequencing, indicating that a different step should be gone to next. This does not apply if a step's condition is not satisfied, as noted at the end of the previous section. @@@ -114,26 -114,12 +117,27 @@@ for declarative workflow it is fairly c might otherwise involve multiple nested workflows. That said, the confusion that `goto` can cause should be kept in mind, and its availability not abused: in particular where a task can be better done - in a proper high-level programming language, consider putting that program + in a proper high-level programming language, consider putting that program into a container and calling it from your workflow. +Thus the above workflow can be written more concisely as: + +``` +steps: +- if ${scratch.skip_date} then goto skipping-ssh-date + +- step: ssh echo today is `date` + next: end + +- id: skipping-ssh-date + name: Not doing SSH + step: log skipping ssh date command +``` + ++ ### Input and Output - Most steps take input parameters and return output. + Most steps take input parameters and return output. Many step-specific input parameters can be set in the shorthand, but not all. All input parameters can be specified in an `input` block. It is also possible to customize the output from a step using an `output` block.