There are two aspects of versioning with respect to workflows: the first is the expression of the version of the appliance software that the workflow depends on, and the second is the expression of the version of the workflow itself. Versioning is expressed through two optional members to the workflow:
|
Appliance Versioning - To express a minimally required version of the appliance software, add the optional required field to your workflow. The appliance is versioned in terms of the year, month and day on which the software was built, followed by a build number and then a branch number, expressed as "year.month.day.build-branch". For example "2018.04.10,12-0" would be the twelfth build of the software originally build on April 10th, 2018. To get the version of the current appliance kit software, run the "configuration version get version" CLI command, or look at the "Version" field in the "System" screen in the BUI. Here's an example of using the required field:
Example 27 Using the Workflow Required FieldHere's an example of using the required field:
var workflow = { name: 'Configure FC', description: 'Configures fibre channel target groups', required: '2018.12.25,1-0', ...
If a workflow requires a version of software that is newer than the version loaded on the appliance, the attempt to upload the workflow will fail with a message explaining the mismatch.
Workflow Versioning - In addition to specifying the required version of the appliance software, workflows themselves may be versioned with the version field. This string denotes the major, minor and micro numbers of the workflow version, and allows multiple versions of the same workflow to exist on the machine. When uploading a workflow, any compatible, older versions of the same workflow are deleted. A workflow is deemed to be compatible if it has the same major number, and a workflow is considered to be older if it has a lower version number. Therefore, uploading a workflow with a version of "2.1" will remove the same workflow with version "2.0" (or version "2.0.1") but not "1.2" or "0.1".