2015-04-15 10:44 AM
I'm having issues getting the Invoke WFA Workflow Command to kick off properly. I'm trying to write a workflow to kick off multiples of the built-in "Move a Clustered ONTAP Volume" workflow. I want to be able to batch a bunch of vol moves, but only run so many active moves at a time. I'm using the "Wait for WFA Workflow" command and the "Invoke WFA Workflow" command to accomplish this. However, this fails with the following output from the server log:
The value n02_sas_600g_10k_aggr1 for input $DestinationAggregate has to be within 
The "Move Clustered ONTAP Volume" workflow appears to be getting sent the correct set of inputs:
2015-04-15 10:09:35,974 INFO [com.netapp.wfa.command.execution.instance.impl.ExecutionInstanceDaoImpl] (http-executor-threads - 74) [Invoke WFA Workflow] Arguments: <userInputEntry key="ClusterName" value="cdotday"/>
<userInputEntry key="VserverName" value="svmsqlday"/>
<userInputEntry key="VolumeName" value="sqlday85_logs"/>
<userInputEntry key="SourceAggregateDetails" value=""/>
<userInputEntry key="DestinationAggregate" value="n02_sas_600g_10k_aggr1"/>
<userInputEntry key="CutoverAction" value="abort_on_failure"/>
Any ideas? The Move a Clustered Data ONTAP Volume workflow looks to just require a string for $DestinationAggregate. I'm not sure I understand why it comes back with "has to be within ".
2015-04-15 11:35 PM
Few queries/points to proceed here:
1. What is the version of WFA that you are using. WFA 3.0 has ability to do modular workflows where one workflow can be embedded in another and invoked multiple times in a loop.
2. >> The Move a Clustered Data ONTAP Volume workflow looks to just require a string for $DestinationAggregate. I'm not sure I understand why it comes back with "has to be within ".
I assume that the volume move worklfow has destination aggregate as a query based input. If so, the value that you provide to this user input should exactly match the output of the query. It would help if you try to do a preview of the volume move workflow directly using the same user inputs that you have mentioned here and see if preview succeeds.
3. >>I want to be able to batch a bunch of vol moves, but only run so many active moves at a time.
It would be a good idea to look at the design of the sample workflow "Controller and shelf upgrade". In that workflow, there is a mechanism where multiple volume moves are started, but batched always at 8.
2015-04-16 06:33 AM
Thanks for the reply. I think I figured it out, but to answer your questions...
1. WFA 2.2
2. Yes, the "Move a Clustered ONTAP Volume" workflow that comes with WFA had a issue. The SQL query used for the Destination Aggregate field was not showing any choices to choose from no matter what I chose for Cluster, SVM, and Volume. I had to edit the SQL query. Once that was fixed, everything worked. I'm assuming that the "" or enumation that WFA is checking is the set of values in the drop down (result of the SQL query). If the value that you specify is not available in that query, then it won't work.
Lesson learned here, make sure that the query that you're using in the workflow that invokes is the same (or similar) to query's used for variables in called workflows down stream.
3. Good to know on the "Controller and Shelf Upgrade" workflow. However, after looking at it, it may have taken more work to get that to work for us than to do write an Invoke workflow to call the Move Volume workflow. Here's what the input screen looks like for the workflow I created. Additionally, I've attached both the Bulk Move workflow and the edited Move Volume workflow.
2015-04-16 10:23 PM
1. Ok. When possible, please do look into using 3.0GA release which has in-built mechanism for embedding/invoking sub workflows from parent workflows.
2. >> I'm assuming that the "" or enumation that WFA is checking is the set of values in the drop down (result of the SQL query)
You are right. WFA engine evaluates the query and checks if the given input is one amongst the query outputs.
I did look into your modified workflow where you have removed the check related to available size, but added some other checks related to number of disks.
3. Got it. The workflow attached is good for the case.
Another option would have been to have a loop that loops through the volumes to be moved and call "Move Volume" command, but also uses the certified command "Wait for multiple volume moves" to do the batching i.e parallel volume moves.
By the way, what exactly is the case where you are triggering multiple volume moves ? I see that the workflow starts with asking SVM too and then choose multiple volumes within that SVM.