I am trying to streamline a VM provisioning workflow I have had for quite a while, but I am finding issues with making the inputs more targeted. My intent is to use the vSphere web client as the interface, rather than launching the vCO/vRO client. Is there something wrong with the vSphere client or am I doing something wrong here? The environment is vSphere 6.5u1, vRO 7.3.0 with the replaced vSphere plugin. I'm a couple of revs back on the plugin, but newer than the 'release' version. We also have a full lab with all components, mirroring our production architecture. Results are the same across both environments and I can test without impacting prod.
I have found this as an example of what I'm trying to do:
http://www.vcoportal.de/2014/05/vco-input-presentation/
Basically they re-point the root of the tree browser so that you don't have to 'drill down' to find the information you need. I have a few places where I'm trying to do this, by different methods. They all work rougly as expected in the vCO client but not in the vSphere client. The results are varied, and sometimes mind boggling. I'll go over a couple of different use cases
1. Folder selection
I want to have the person running the workflow select the folder to drop the VM into within the vSphere structure. To make this happen I have two variables for the workflow which are defined as the 'vm' root that comes out of the box in the vSphere plugin, each one is for one of the vCenters. When you select the vCenter in a previous step, it sets a third variable, vcThisFolderRoot, to the corresponding vm root folder for that vC. In the presentation I have this defined as the input
![]()
When you walk through the workflow, this is the result in the vRO client
![]()
but this is the same thing in the vSphere web client
![]()
Notice how I had to drill all the way down to get to 'vm' but it was the root in the vRO client.
2. Cluster selection.
I have two vCenters in ELM, you pick one and are supposed to pick the cluster to deploy your VM into. The variable holding the two vCenters is this:![]()
The presentation is like so:
![]()
When you select one, the next item, reqCluster, is dynamically set with this
![]()
The code in there is this:
GetAction("com.vmware.library.vc.cluster","getAllClusterComputeResourceForVimHost").call( #vcProd )
In vRO client you get a list of the clusters defined on only the selected vC. In vSphere you get *all* clusters on both vC systems.
I have a couple of other uses, like picking ActiveDirectory OUs from an array of defined objects presented in a dropdown. The objects come from the AD plugin. Works as expected in vRO, but in vSphere it shows *every* returned OU, somehow. This is just weird. That makes me think the filtering is just straight up broken, but I don't see how it can even query that info.