Skip to main content
Pure Technical Services

vRealize Orchestrator 7 User Guide: Workflows

Currently viewing public documentation. Please login to access the full scope of documentation.

Workflow Inventory

The Pure Storage Plugin for vRealize Orchestrator offers a significant number of default workflows to provide simple orchestration of VMware and Pure Storage operations.

clipboard_ec8301474345d0067ced596cf1b930616.png

Pure Storage Workflow Folder Description
FlashArray Connection Management Workflows for authenticating FlashArray or Cloud Block Store targets
FlashArray Host Management Workflows for creating or managing FlashArray or Cloud Block Store hosts and host groups
FlashArray Management

Workflows for FlashArray or Cloud Block Store array-level administrative tasks.

FlashArray Protection Group Management Workflows for FlashArray or Cloud Block Store protection group creation, modification, or destruction.
FlashArray Pod Management Workflows for FlashArray or Cloud Block Store protection group creation, modification, or destruction.
FlashArray Protocol Endpoint Management Workflows for FlashArray or Cloud Block Store pod creation, modification, or destruction.
FlashArray REST APIs Workflows to run custom REST API operations against a FlashArray or Cloud Block Store platform. For features that are not yet integrated (or pulling specific metrics) these workflows can be used.
FlashArray Snapshot Management Workflows for FlashArray or Cloud Block Store snapshot creation, modification, or destruction.
FlashArray Virtual Volumes Workflows focused on FlashArray Virtual Volumes. Configuration, management, replication failover, storage policies, and more.
FlashArray Volume Group Management Workflows for FlashArray or Cloud Block Store volume group creation, modification, or destruction.
FlashArray Volume Management Workflows for FlashArray or Cloud Block Store volume creation, modification, or destruction.
FlashBlade Connection Management Workflows for authenticating FlashBlade targets
FlashBlade REST APIs Workflows to run custom REST API operations against a FlashBlade platform. For features that are not yet integrated (or pulling specific metrics) these workflows can be used.
Pure1 Meta Workflows for authenticated Pure1 Organizations. Tagging, intelligent provisioning, array registration and more.
VMware ESXi and FlashArray Workflows that include workflows from other sections integrated with relevant VMware operations for end-to-end orchestration of a VMware and Pure Storage environment.

 

Running Workflows

One of the most common tasks in vRealize Orchestrator is running a workflow. Whether creating, configuring, modifying, or deleting a resource the workflow is where it starts. Workflows are combinations of scripts, built-in functions calls "actions", logic, and more. The Pure Storage workflows are entirely listed under the Pure Storage folder in the workflow panel. Which is the default tab shown when logging into vRealize Orchestrator.

clipboard_e9a4cc2b9bdd5d49516e3844142891095.png

To run a workflow, identify a workflow in the hierarchy, right-click it, and choose Start workflow:

clipboard_ea9314a4e9c0fec3fc6515669ea6abea5.png

Workflows most commonly require a selection of inputs, which vary from workflow to workflow. Certain workflows require some or all of their inputs to be filled out before you can complete the wizard. An important benefit of the workflows provided by the Pure Storage Plugin for vRealize Orchestrator is that inputs are actively checked as you enter them to ensure that they are valid choices.

Most Pure Storage workflows that create a resource will require a FlashArray connection--this choice tells vRO what FlashArray they should create the resource on. If you are modifying an existing resource, this input is usually not needed--as the FlashArray can be inferred by the original resource selection.

1) Click to choose a FlashArray 2) Find your desired FlashArray connection 3) Submit it to the workflow
clipboard_e8228ab446d58d4f9bae9b474dd8a89ab.png clipboard_ee7d5ab90ec298a73d953cad36bcbf761.png clipboard_ef9a60884a0f78d8a37e73b351ea3f656.png

Entries can also be radio button, drop-downs, or string boxes (or many more). String boxes are generally checked to make sure the string follows the required parameters (like FlashArray volume naming conventions).

Valid Not valid
clipboard_ec972f7fb846de0b38e35d4b8b0900e10.png@ clipboard_e0248c2d1159896252b928289d7324714.png

When you have completed the wizard, click Submit. If the submit button is not active, you have missed or mis-entered an input.

clipboard_e17aaa2fd8b3b9e52b2ef06b82b799bc4.png

When you have run a workflow, it will spawn a workflow run underneath the workflow item. If it is running it will have a green "play" triangle next to it. If it is complete, it will have a green check. If it failed, it will have a red X. If it needs additional input it will have a person icon next to it.

clipboard_e925a47fb06684b1acaeb509779d65418.png

You can click on the workflow run to see details about the instance.

clipboard_e51095bc2f71675c783904d1af3bd1ec5.png

The Variables tab has information about any entered, calculated, or generated variables (inputs, outputs, or attributes).

clipboard_e62bc288e29191090c42e53c32598de99.png

The Logs tab will show time-stamped information about the run--all logs levels are stored, to see the different levels use the drop down.

clipboard_e1fae95f726df1ae7af93d7e577c71d5e.png

When open support tickets, please ensure to copy the Debug level logs.

Editing Workflows

The workflows that come with the Pure Storage Plugin for vRealize Orchestrator are not editable by end users--this is done to make the workflows easier to support. If you would like to make a change, you have two options:

  1. Submit an enhancement request. This can be done here: https://github.com/PureStorage-Connect/vRO-Plugin/issues directly or via your Pure Storage account team.
  2. Copy the workflow and edit it yourself.

As an example of the second option, lets look at the workflow to create a volume. I may want to enforce a naming convention on new volume names. To do so, first copy the workflow:

clipboard_e0a2c26b17dc7266ea9323be376c4e8ef.png

Create a new folder if you have not yet for customer workflows first:

1) Create new folder 2) Give it a name 3) Verify location
clipboard_e1fe320abdf16979821b0e749893b37f5.png clipboard_edf48549a5090432921f3128f6c794251.png clipboard_eaa094ef69a3acad905db436ca0489816.png

Then rename (if desired) the workflow and choose a location.

1) Rename 2) Choose folder 3) Submit clone
clipboard_e0a30e1f150fbd8608912f45464007ab8.png clipboard_e989632563506f061e4ff2594e163df4d.png clipboard_e928e084a23728d6341560b3620f971b0.png

The workflow will be copied to your folder with the new name.

clipboard_e86fb42bb1a37ba0887e99de72e33aff4.png

You may now right-click and edit the workflow.

clipboard_e26e624ed878c7d72aa4773ec665a7f06.png

On h

1) Click on presentation 2) Change the regex check 3) Updated description.
clipboard_ed61caa3d8f013692f928e91b537f55db.png clipboard_e1f96a6ba643836012df2246e67d54e75.png clipboard_e191ff3a959ffe9f94e4d11b4b40640a6.png

Click Save and Close. The next time it is run, it will require (in this case) that the volume name starts with "Volume-".

Valid Invalid
clipboard_e45d60b257957fb9e931f9d146c165ccc.png clipboard_ec3fadda010406b771f68202af34cb4d1.png

If you create customized workflows it is important to back them up by either backing up the vRO appliance itself or exporting the workflows and storing them in a protected place.

clipboard_e4cd5c8a27826f4faa0eb40ad7d71a5af.png

Detailed information on creating implementing validation and specifics checks is beyond the scope of this document. For details, please refer to VMware vRO documentation: https://docs.vmware.com/en/vRealize-Orchestrator/index.html

Creating New Workflows

Full instructions on creating custom workflows within vRealize Orchestrator are beyond the scope of this document. But at least we can make a few recommendations to make this process easier.

High level advice: use the plugin! There are a lot of built-in features, beyond just workflows, that can save you a lot of time. Take advantage of that.

To create a new workflow, right-click the desired folder and choose New Workflow

clipboard_ea28f9a40d2a2055f8b596ca9d2472e9a.png

Give it a name:

clipboard_e9468d3bb4e650d489dbbc44c32e5d300.png

Advice #1: Re-use default workflows

The first suggestion is to review the existing workflows--can they do all of what you need. If they do, just use them directly. If they are close, clone them and make edits (as described above). If they achieve a part entirely, but you want to link them to something else, you can add workflows to a workflow:

Find a workflow under All Workflows and drag it to the correct spot:

clipboard_ebc131970c5e46231b1590ca1279c6723.png

This will ask you to help import the inputs/outputs--you should almost always do so by clicking the Setup button that appears.

clipboard_e2bcba347fb10672dfa4e6067db2b6c72.png

Configure the inputs, outputs, and attributes as needed. Generally the defaults are fine.Click Promote.

clipboard_ec3496425fe0d14d2ff0bd3b48d2b763b.png

It should be noted that when you import a workflow the input validation is not imported with it. You will need to re-create it (if desired) or copy it from the original and paste the inputs into the new workflow.

 Advice #2: Re-use Actions

If no workflow achieves what you need (or commonly does too much), before writing your own code--use the built-in actions in the plugin. The plugin re-uses a lot of default functions, referred to as actions in vRO, for many plugins. These actions are available for you as well.

In the workflow editor, you can go to All Actions and find the ones under the com.purestorage folders. These are the actions that come with the plugin.

clipboard_e904e2c30fa09879ba859f0358d467cba.png

Actions can be selected and dragged into the workflow just like workflows. Generally actions do one thing: create something, retrieve something, convert something etc. Combining actions together can often achieve most desired workflows with minimal customization. To learn more about actions, choose the vRO Design view and click on an action. The General tab will show high level information, and the Scripting tab will show the details (what it takes in, what it returns, and the code it uses).

Action generics Action details
clipboard_e6b8147cc0d8276750424691a79fcf472.png clipboard_e5f6574fb78f4c685bb534592d991d3b3.png

Drag and drop actions as needed.

Advice #3: Use the object inventory!

Whenever possible do not ask for volume names, or use strings (unless you need to name something)--ask for the input to be a Pure Storage object type. When you specify an input has to be a PS:Volume--this will automatically provide the user a menu to choose a PS:Volume. Therefore they can be guided to choose the right thing--and you don't need to write more code to make sure it is valid. 

1) Input is PS:Volume 2) User is forced to choose a valid volume 3) User is guided to make a valid choice
clipboard_ed3d6d6558bc138e2a1f142e103745632.png clipboard_eec9bc5b8bbd5c49146792845c01445dc.png clipboard_e4e13eff2a67ffbeb685bebf05dba9bad.png

Advice #4: Only use the REST API workflows if you have no other choice.

The Pure Storage Plugin for vRealize Orchestrator offers a few workflows to run custom REST operations against a FlashArray, Cloud Block Store, or a FlashBlade:

FlashArray or Cloud Block Store FlashBlade
clipboard_e8d3423744ccb52611b70fdea8904b27b.png clipboard_e4c007e56c843b5871a4fb262da19f08a.png

This should only be used if the feature you want to use (or metrics you need) does not have a workflow, action, or Javascript library. The plugin, in addition to workflows and actions, comes with customized Javascript libraries. Each object has methods that can be run from that object once input:

clipboard_e2a1b532a3ef52b5d746a64d0f697cba6.png

And each object type also has a manager that can be used to do additional tasks for that object:

clipboard_ee63e98be14f31c6ebf69bc90ccf61d75.png

Many of the manager operations require a REST session which can be pulled from the FlashArray connection object or the object itself with the GetSession() method:

clipboard_e943b238ad6714216c68efa049386deba.png

For examples of using these, refer to the code within related Actions.