Pure Storage vRealize Orchestrator Workflow Package v1.2

I just released the 1.2 version of the Pure Storage FlashArray Workflow Package for vRealize Orchestrator. Like always, you can get this from GitHub:


If you haven’t looked at our vRO workflow package, check out my original post here:

FlashArray Workflow Package for vRealize Orchestrator

While this isn’t a huge release in terms of new features, I think it is an important one because it adds (among others) one particularly important workflow. Translating a VMFS datastore object into a FlashArray volume name. Let’s take a look.

This release has a few updates:

  1. Workflow to translate VMFS datastore objects into their FlashArray volume name
  2. Built-in workflow to take in a datastore object and take a FlashArray snapshot of it.
  3. Fixed an issue where API tokens were logged in plain text, this has been removed

Number three is pretty straight forward. During the FlashArray connection workflow the API token was exposed in the log, this was done for debugging purposes but was not removed for release. It is fixed in version 1.2.

Let’s focus on 1 and 2.

Correlate VMFS object to FlashArray volume name workflow

Like I described in the previous vRO post, this workflow package was created to be somewhat “object-oriented”, in other words we provided you with a bunch of building blocks that you could assemble together to do what you wanted to do. We did the work of integrating the usage of our REST API calls into workflows so you could make your own larger workflows.

That’s all great, but what if you want to integrate these workflows with VMware-based ones? The FlashArray workflows take in things like FlashArray volume names, which may or may not be the same as the VMFS name. So it was missing a step. Some of the workflows in the version 1.0 release did some integration for you, like for instance:

  1. Create host group on FlashArray for an input VMware cluster object. You supply the cluster and we go to the FlashArray and create a corresponding host group with hosts and WWNs for that cluster of ESXi hosts. This allows you to provision to that cluster easily.
  2. Create FlashArray volume, connect it to a host group to provision to a cluster and format it as VMFS. Give us a name, a size and a cluster and we do the rest!

These are useful and provide some examples on putting these workflows together with VMware ones, but still requires manual work to relate the VMFS with the FlashArray volume. No longer!

Now you can give the workflow a datastore object and it will return the NAA of the device and the FlashArray volume name and the FlashArray it is on. This makes leveraging these work flows and assembling them very easy. Let’s look at a quick example of running this.

The workflow takes in two things:

  1. VMFS volume
  2. One or more FlashArrays


So I choose a datastore:


Then add one or more FlashArrays. This allows you to not have to know which FlashArray the volume is even on, the workflow will search through them and figure it all out for you. Choose an FlashArray REST target and click “Add” and repeat for each FlashArray you want then “Select” to confirm the choices.



Now run the workflow.

The results are informationally recorded in the log but more importantly, they are also output inside of variables that can then be sent to another workflow. They are the identified FlashArray (as a REST target), a FlashArray volume name (as a string) and the NAA of the device if for some reason you might want that.


In an upcoming post I will go into some more detail on how to use this. This is especially useful for vRealize Automation stuff, so stay tuned there.

Create FlashArray snapshot of a VMFS workflow

If you are familiar with the workflow package, there was already a “create FlashArray snapshot” workflow, but this was just a piece of the puzzle if you wanted to snapshot a VMFS. This workflow (besides needing to be combined with an authentication workflow) needs more information to work directly with a VMFS datastore. The base workflow needs a string variable describing the FlashArray volume name and also the REST target that corresponds to the FlashArray that hosts that volume. This new integrated work flow figures this all out for you by using the correlation workflow we just discussed.

This workflow takes in a datastore and one or more FlashArrays, figures out which FlashArray that volume is on, then takes a snapshot. It returns the information about snapshot that is created.

This is a simple connection of the “VMFS Volume to FlashArray Volume” workflow described above and the “Snapshot FlashArray Volume(s)” workflow that are connected together. The first one takes in a datastore and a few FlashArrays and returns the volume and the FlashArray:


The other takes in those objects (the volume and the FlashArray) and creates a FlashArray snapshot: