2017-03-10 07:28 AM
I have built a workflow in our lab for provisioning new NFS exports which deploys the following:
export policy + export rule + volume mounted as namespace
export policy + export rule + volume creation, then establishs the mirror releationship & schedule, initializes the mirror followed by the mounting of the DR volume namespace
In my lab I have constants defined for ClusterNameSource, VserverSource, ClusterNameDestination, VserverDestination.
I want to take this workfow to my production environment which currently has 6 different possible deployment combinations which would determine the constants above. I am trying to figure out how to allow the 6 environment variables to be selected as a user input which then sets the four constants as listed above. I tried setting up a new dictionary, using a new scheme which is based off a csv file with these entries that I added as a datasource being loaded into .\ via powershell script but that simply lists the name fields versus taking the csv inputs so looking to see if someone can point me in the right direction. Below is a mock version of the csv I used for my scheme & load as a data source which shows what I am trying to do by selecting the environment it then setting the four constants.
Environment ClusterNameSource Vserver Source ClusterNameDestination VserverDestination
If someone can get my pointed down the right path I would greatly appreciate it. My current user inputs only request SIZE, NAME, NFS ACCESS SOURCE & NFS ACCESS DESTINATION. I would really like to add ENVIRONMENT which then sets the four constants based on the environment.
2017-03-12 06:48 PM
From what I understand your requirement.
This didn't require you to do a new Data Source creation and acquistion. But since you have done it, lets see how to proceed now.
I assume after your acquistion data looks like the table you have mentioned below.
ClusterNameSource = getColumnValues($ENV,2)
VserverSource = getColumnValues($ENV,3)
ClusterNameDestination = getColumnValues($ENV,4)
VserverDestination = getColumnValues($ENV,5)
Let me know if this worked for you.
2017-03-13 07:13 AM
Sinhaa - Thank you for your response. I don't want to overcomplicate my workflow or depend on a new datasource if that is not necessary so what would you recommend as a better alternative?
In my current workflow the Source(Primary) and Destination(DR) were known constants which I hardcoded into the workflow steps. I want to edit this to allow it to be based on the 6 different possible environments I had listed for Source Cluster/SVM & Destination Cluster/SMW. Here is some screenshots of my current setup:
Constants - as you can see I hardcode the primary(source) cluster/svm and secondary(DR) cluster/svm. If I want to continue down this path I need to create 6 seprate workflows which I don't want to do; I want 1 workflow that can be used for all six environments and modified when new ones are added or current ones are removed.
Here are my current user inputs which I would like to be able to add a 5th that asks for LOCATION which would be one of the six possible setups. Based on the LOCATION selected it would then determine the Primary Cluster/SVM and Secondary(DR) Cluster/SVM.
Below are examples of the search parameters for the source and destination commands that determine Cluster/SVM and use the user inputed $Volume_Name, which if it already exists aborts the workflow but if not used those constants to execute the commands for deploying export policy, export rule, creation of volume, etc.
Here is the overall view of the command set that makes up this workflow:
Thank you for your time and assistance!
2017-03-13 10:55 PM
Okay dump your dataSource and
1. In 'Constants' tab add a new constant called : ENV , Value $ENV. The Value of a Constant doesn't have to be a constant inside a quote.
2. Now go to user-inputs tab and edit this vaiable $ENV from type string to Query (Multi-Select)
3. Select Row to Single
4. In query Add a query as below. I've taken 2 rows from the CSV data you provided. You can add the remaining rows yourself.
Do a TEST and see your rows are getting shown as you want.
Make this parameter Mandatory
SELECT '1APROD-1BDR' AS 'Environment', '1A-1234-cluster00p' AS 'ClusterNameSource', '1A-1234-svm01p' AS 'VserverSource', '1B-5678-cluster00p' AS 'ClusterNameDestination', '1B-5678-svm01p' AS 'VserverDestination' UNION SELECT '1BPROD-1ADR' AS 'Environment', '1B-5678-cluster00p' AS 'ClusterNameSource', '1B-5678-svm01p' AS 'VserverSource', '1A-1234-cluster00p' AS 'ClusterNameDestination', '1A-1234-svm01p' AS 'VserverDestination'
5. Back to 'Constants' tab. Now for your constant, modify the value as given
ClusterNamePrimary => getColumnValues($ENV,2)
VserverPrimary => getColumnValues($ENV,3)
6. Now you may optionally even Remove the Parameter $ENV. Its presence too won't harm you in any way.
7.That's it. you are done. Now your constant will be derieved based on the environment you select.