So in part 1 we covered on a high level a basic intro to vRO. In this part we are going to look at designing a Workflow.
1) What the hell is the workflow going to do?
This is the first question you need to answer. I know better than most, when I was first learning it I would sit at my computer and say, “right lets create a workflow” and then sat there thinking and didn’t know what to do. Every time someone asks I say have a goal, something you do on a daily basis and try and orchestrate that, you will learn vRO so much better then trying to come up with something other than hello world.
Description – This workflow is going to resize the selected disk of a VM.
Input – Array of VM’s
Output – EMail to requester on success or fail
2) How is the workflow going to be executed? Is the workflow going to be on a schedule, is it going to be called by another system or is it being run manually through the UI? This is very important as it will shape the inputs and outputs required or how simple and complex to make the UI for it.
Workflow will be executed by out ticketing management system.
3) What are your data sources? To complete the task you have set forth, where is your data going to be coming from? this is important as you need to first know if it is possible to get the data you need, do you need a plugin, does it have a rest api, can you connect to it etc.
Guest OS of a machine
user/Password for the machine in secret server
user/Password for vCenter in secret server
4) what are the manual steps required to do this task? This is usually a good starting point to creating a workflow. map out the tasks required and the information needed and add them in one step at a time. dont try and to it big bang. take it one action at a time 🙂
v0.5 – Connect to vCenter, Finds VM, resizes selected vmdk.
v1,0 Connect to vCenter, finds VM, checks OS for drive ID, match that to VMDK, resize
v1.1 – Connect to vCenter, finds VM, checks OS for drivbe, match that to VMDK, resize, expand disk in OS.
When you answer all these your on the right track, When creating these, try and be as modular as possible. if you think a specific part of your workflow could be used by other tasks then make it so this is possible. dont write everything to be a one off. Once you get a libary of small modular workflows started, there is nothing you cant do.
util next time….