Is there a custom property that we can utilize to select a reservation policy at the machine request page so that we don't have to have a separate blueprint for each reservation policy? An example would be a cluster devoted to Dev one to Prod, etc, and based on something the requestor selects would dictate which resource it would be provisioned too?
The custom property is unfortunately a guid __reservationPolicyID and there's not a terribly great method for exposing this in the UI. There's been lots of requests for this and in most cases it's been some a custom web control. Not sure if we can vote for this somehow to get it on the roadmap but it doesn't seem very complicated and a common use case.
sorry to bump a really old thread but is using __reservationPolicyID still the best way to select a cluster? by linking it like this
Tiering vCAC Blueprints with Policies, On Demand - Elastic Skies
Or be somehow using the datacenter location XML (Will that work if used as clusters rather than datacenters)
there are a lot of threads on this for sure but all I am trying to achieve is a single blueprint and the ability to select a cluster, datastore and network
kind of like this but for cluster rather than for virtual datacenter
[virtualjad.com]: vCAC Property Dictionary: Customize Service Requests with Dynamic Menus
otherwise I need to create many seperate blue prints for the clusters which is frankly a pain and confusing for people
any ideas?
__reservationPolicyID still the best way to select a cluster? This is what I am doing and in my form it is a hidden input that is defined from an action. This action will take the value of the "network environment" and the datacenter location and will return the __reservationPolicyID
Thanks for the reply
How do you make the value hidden?
I actually want the cluster selection to be the main driver for other items. I can do this with relationships and XML which has been discussed a lot on the forums
In the examples in the links is there a way to hide the GUID which is presented as it is quite unclean or is that just a case of accepting it will be there (Tier ID in the example)
I am using the ASD for the form front-end and from the way of doing things I have able to do alot of things in the presentation tab in vRO as well as the ASD form designer. i am using a custom vRO action to make the calculations and select the proper reservation but I have also done this using the native XML relationships also.
To hide it from the user, add the property to a build profile and do not select prompt user
thanks
I found using VirtualMachine.Admin.Hostname
and creating a property dictionary entry with each cluster name worked to force the build onto a cluster
I could now link that with the DataCenterLocations.xml and a relationship to provide a virtual datacenter and the list only the clusters in that datacenter
I think that just leaves me working out how to hide the "reason for request" field as its not needed right now. hardly a show stopper mind
I think that just leaves me working out how to hide the "reason for request" Are you talking about the ASD request where the "reason for request" windows wants input before you get the rest of the form? Bear with me as I dont have it in front of me but check either the first page of the form designer or the catalog item. What you are looking for is a check box to hide something. I can not remember how they worded it but it is a check box that will not present that question and will bring you straight to the form. When I get to work this morning I will get the exact location if you have not updated this thread saying you found it.
Cheers
not using the ASD
just using out of the box at this stage
do you agree with my thought process of using VirtualMachine.Admin.Hostname
I am just curious if its possible to hide standard fields in the request e.g. "reason for request" can some XML be edited or is the only way custom?
I like have the description as optional but have no reason at this stage for the reason for request so wondering if / how it could be hidden
Will
I never did find a way to hide that using the OOB capabilities. You can populate that value with the __Notes property name
I have successfully been able to select a reservation policy at provisioning time, I've even used it as a parent drop-drown field for network and storage
the custom property is VRM.Datacenter.Policy
more on VRM.Datacenter.Policy
vRealize Automation 6.2 Documentation Center
Note: I've had better results when I set the VRM.Datacenter.Policy as the parent value in the property dictionary, with storage policy and/or network profile as children - as this really solidifies the target (as usually storage and network options are different on another target)
I am not getting much luck
I am actually using DataCenterLocations.xml and a property dictionary entry for vrm.DataCenter.Location
This is the parent
I then make another entry in the propery dictionary for vrm.DataCenter.Policy
These match my reservations policies which are assigned 1 to 1 to each reservation
I then do a relationship and valuExpresssion (XML) between the location and reservation policy to show only clusters in each location in the drop down menus
However when I select the build the machine it puts it anywhere is likes and ignores ll logic
Any ideas?
I don't really want storage and network to be selectable options as we are happy with round robin and hiding this from the user
Just rebuilt my lab - I'll set things up with just VRM.DataCenter.Policy w/o any child locations.
Also to note the VRM is all caps in VRM.DataCenter.Policy, a bit confusing since vrm is lowercase in vrm.DataCenter.Location
Also in the documentation datacenter has a lower case 'c'
i assume it's entirely case sensitive
i I was also wondering if I could just use VirtualMachine.Admin.Hostname to force the cluster instead of a reservation policy. Will be interested to here your findings on the rebuilt lab
an update following more testing:
If i just use VirtualMachine.Admin.Hostname
on its own with a ValueList of all clusters it selects the cluster perfectly. this doesnt use anything fancy and makes no use of reservation policies
as soon as I start adding logic in to select the datacenter with vrm.DataCenter.Location and creating a relationship and ValueExpression using XML all that disappears and the machine places itself whereever it likes
such a shame but if I need to have a long list of clusters (around 40) with no logic or human readable labels then at least its a solution. I need something OOB which forces the machine to a compute resource (in this case cluster)
anyone else found a better way?
more testing as this appeared to be working but actually isn't
I also tried using VirtualMachine.Admin.ClusterName
still no good. will continue testing. not sure why its so hard!
looks like the only way it "will" work is to repurpose the datacetnerlocations.xml
not ideal but i know that will work
You can use the property __reservationPolicyID
Yes, starts with 2 underscores, is undocumented and you need the ID of the reservationpolicy Object in the vCAC database. Which can be retrieved from the API.
Setting this only works at request time as far as I know. So buildingmachine stage is too late.
But it works fine for me. If you combine it with VRM.DataCenter.Location and the datacenterlocations.xml file you are very flexible in the way you choose your cluster.
It looks like using the hidden custom property __reservationPolicyID is not officially supported by VMware. The below process should work as far as the cluster placement is concerned:
1. Make VRM.Datacenter.Policy to Exact
2. Update the locations.xml files with all vSphere cluster names
3. Tag each compute resource with appropriate location (Cluster) name.
4. When requesting a catalog item, select appropriate location name (In this case, you'll be shown all the vSphere clusters).
Your machine should now be provisioned on the selected cluster. If there are no reservations available for that compute resource (Cluster) satisfying the request, the request is failed.
vDuBB - Could you explain more how are you using VRM.DataCenter.Policy to select different reservation during provisioning. I am trying to implement a solution that you are suggesting but I kept running into issue. Do you have this explained in a blog post or something ?