Hands-On Exercise 5: using parameters¶
In this exercise we will study the usage of parameters in the workflow.
Prerequisites¶
- You have cloned the Hands-On git repository (see Clone the Hands-On repository),
- (Only for python) You have installed the required software (see Prerequisites when using python).
Install the Hands-On¶
- Install the Hands-On Exercise 5, just type:
cd
cd dcs-hands-on
mvn clean install -D hands.on=5 -P bash
Inspect the application.xml¶
- Checking the updated application.xml, you will see now the parameter expression:
<?xml version="1.0" encoding="us-ascii"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="beam_arithm">
<jobTemplates>
<jobTemplate id="expression">
<streamingExecutable>/application/expression/run</streamingExecutable>
<defaultParameters>
<parameter id="expression">l1_flags.INVALID?0:radiance_13>15?0:100+radiance_9-(radiance_8+(radiance_10-radiance_8)*27.524/72.570)</parameter>
</defaultParameters>
</jobTemplate>
</jobTemplates>
<workflow id="hands-on-5" title="Using parameters" abstract="Exercise 5, using parameters">
<workflowVersion>1.0</workflowVersion>
<node id="node_expression">
<job id="expression"/>
<sources>
<source refid="file:urls">/application/inputs/list</source>
</sources>
</node>
</workflow>
</application>
Inspect the run executable¶
- Open the file expression/run and search for the lines containing the function ciop-getparam:
# retrieve the parameters value from workflow or job default value
expression="`ciop-getparam expression`"
# run a check on the expression value, it can't be empty
Run and debug the workflow¶
- Run the node node_expression:
ciop-run node_expression
- Check the output of the application by copying the Tracking URL from the ciop-run command, and paste it in a browser (see Exercise 2: make a robust workflow and debug it). You will see an output similar to:
Recap¶
- We added a parameter in the job template of a processing node, defined in the application workflow;
- We used the value of that parameter in our run executable.