Understanding Workflows
A workflow is embodied in a valid ECMAScript file that contains a single global variable: workflow. The workflow object must contain at least three members:
Table 9-1 Required workflow Object Members
| Required Member | Type | Description |
|---|---|---|
|
|
String |
Name of the workflow |
|
|
String |
Description of the workflow |
|
|
Function |
Function that executes the workflow |
Example 9-1 Hello World Workflow
This example shows a simple workflow.
var workflow = {
name: 'Hello world',
description: 'Bids a greeting to the world',
execute: function () { return ('hello world!') }
};
Uploading this workflow results in a new workflow named "Hello world". Executing this workflow results in the output "hello world!"
Example 9-2 Using the Workflow Run Function to Return CPU Utilization
Workflows execute asynchronously in the appliance shell, running (by default) as the user that is executing the workflow. As such, workflows have at their disposal the appliance scripting facility (see Working with CLI Scripting), and can interact with the appliance in the same way as any other instance of the appliance shell. For example, workflows can execute commands, parse output, and modify state. This more complex example uses the run function to return the current CPU utilization.
var workflow = {
name: 'CPU utilization',
description: 'Displays the current CPU utilization',
execute: function () {
run('analytics datasets select name=cpu.utilization');
cpu = run('csv 1').split('\n')[1].split(',');
return ('At ' + cpu[0] + ', utilization is ' + cpu[1] + '%');
}
};