Outline of Cisco IAC Integration with WFA

by New Contributor on ‎2012-04-27 12:52 AM

Thanks to some direct and very indirect colleagues we can share a recording on how to let Cisco IAC leverage Workflow Automation (WFA). WFA is key to storage automation in shared storage environments thanks to filtering and resource selection and its flexibility. Refer to https://communities.netapp.com/docs/DOC-12977 for a detailed description of the API.

Show availabe WFA Workflows (getAllWorkflows)

In the attached recording the WFA WSDL API is instrumented from CISCO IAC (Tidal). Connectivity is established and the method "getAllWorkflows" on the WFA server is called. A little XSL transformation extracts the ID and Name of the presented workflows.

Video Link : 2615

Executing a WFA Workflow (executeWorkflow)

Basically this follows almost the same pattern as the one before. Instead a different method is called on the WFA server and it is parameterized differently. Here in this sample it is workflow with ID=4 named "HelloWorld" which acts as the sample. Any placeholder can be used to select the workflow of choice.

Video Link : 2616

getAllWorkflows Step by Step

This section is about discovering available WFA workflows from Cisco IAC. Once they are discovered, they can be parameterized and executed as outlined in the next section.

Discovering the workflows prior to presenting a selection is a preferred way and avoids the need to maintain a repository of them in two separate locations. Once the storage administrator has adapted or defined a new WFA workflow and marked it as production ready it can be discovered, parameterized and executed.

Note: The Execution Portal in WFA lists only workflows which has the attribute “Ready for production” set. All available workflows can be found in the Designer tab.

To query for all existing workflows a process is created which calls the method getAllWorkflows on the WFA server. Here it is shown how such a process can be created.

Please click on the individual images to get a clearer image. Try to fix the rendering issue.

Figure 3) Starting creating a new Process.

Figure 4) This leads to a new process screen. The process is given a name and the execution target is set. Were we name it “WFA - getAllWorkflows”. Our target is a server called “CloudBox”.

Figure 5) Now drag the Web Service Execute activity in between the flow. In this sample an XSL Transform activity is appended to the Web Service Execute to extract relevant bits of the XML response. Use the filter to quickly access the XSL Transform.

Figure 6) Now configure the URL and click on “Verify”. The connectivity is verified. On success the provided methods are accessible by clicking on “Select”.

Figure 7) Select method from WFA server. Here we select getAllWorkflows.

Figure 8) Next the input parameter for this method have to be specified. The getAllWorkflows method does not receive any inputs. Close this dialog, save and synchronize.

Calling methods on the WFA server via WSDL require authentication. It is necessary to define a valid credential which is selected for this call. Via the Credentials tab the default setting can be adjusted. For this test activity we created a user called WFADefaultUser which translate to WFA user admin.

Figure 9) Setting a valid WFA user credential. Override process runtime user with a valid WFA user (here it is admin/admin again).

Figure 10) Now give the XSL Transform a meaningful name and configure an XSL statement. Here we use a sample statement to derive the Id and the Names of the available workflows.

Sample XSL to extract Workflow ID and Name. Here the two values were extracted to simple text format. It is up to the orchestration software to present it to the user interface.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output omit-xml-declaration="yes" indent="yes"/>

    <xsl:template match="ArrayOfWorkflow/workflow" >

      ID: <xsl:value-of select="id" /> Name: <xsl:value-of select="name" />



Figure 11) Define input parameter for XSL Transform. Select the output of the workflow activity before.

Figure 12) Save and run the workflow. Update the Process Results dialog using F5. Green colored activities mean success. The execution status can be checked by opening the context windows.

Figure 13) Checking the results of calling the WSDL API method.

Figure 14) Checking the results of the XSL filter.

The getAllWorkflow operation can now be embedded in custom Cisco IAC workflows. The result of the WSDL method getAllWorkflows returns the available WFA workflows (as XML document). This document can be parsed in a variety of ways to select the workflow of choice. For this sample the WFA workflow Id and name were extracted for a simple tabular representation using the XSL filter above.

We now continue with executing a workflow (WFA) and track its status (WFA). For this illustration we call the HelloWorld workflow with ID = 4.

New Contributor

Who can explain me why the figure look like through the glasses of my grandmother? They look ok in editor mode! Also if you generate a pdf the figures look ok.

Frequent Contributor

Are you resizing them?  Also, the one small image is a .png.  the other blurry ones are .jpg.  I have had better luck with .png files, for what it is worth.

New Contributor

Tx Kevin.

Just tried the png way and it didnt change. I agree with a rendering issue. When click on each image it gets displayed ok.

Tx n best, ah

bdave Former NetApp Employee

Looks like an image compression issue.  Since it's the text that's not coming through clearly, perhaps try saving as a GIF.  The color palette will be reduced, but the text should be clearer.


This NetApp Community is public and open website that is indexed by search engines such as Google. Participation in the NetApp Community is voluntary. All content posted on the NetApp Community is publicly viewable and available. This includes the rich text editor which is not encrypted for https.

In accordance to our Code of Conduct and Community Terms of Use DO NOT post or attach the following:

  • Software files (compressed or uncompressed)
  • Files that require an End User License Agreement (EULA)
  • Confidential information
  • Personal data you do not want publicly available
  • Another’s personally identifiable information
  • Copyrighted materials without the permission of the copyright owner

Files and content that do not abide by the Community Terms of Use or Code of Conduct will be removed. Continued non-compliance may result in NetApp Community account restrictions or termination.