How to rename the VM during the Deployment in VRA/VRO7.6(vRealize Automation 7.x)

Often there are situations where we want to automate the name generation of the VMs and There are multiple ways to do that in VRA.

We can use Machine Prefix feature which is inbuilt in VRA . we can navigate to Portal by below
Infrastructure => Compute Resources => Machine Prefixes

Another way is to use the VRO , As we all know we can Integrate anything in VRO , all we need is plugin. Another used case we can do is to Integrate with naming server then pass the value to VRA for VM Name or if we want to specify on runtime.

Recently I was working on used case , where I want to provide the VM name at the time of submitting the request , that is what we are covering on this Post .

Here is my request/ Custom form look like.

Before start the VRO part lets complete the pre-requisite for VRA /VRO configuration .

  • Click on Blueprint and click on custom property tab and add the below properties as in the screenshot .
  • Extensibility.Lifecycle.Properties.VMPSMasterWorkflow32.Requested value must be * .
  • VMNewName value must be blank .
  • Down the package from above and unzip the package .
  • Open VRO legacy Client .

Once VRO client is open , Change the view to Design and Import Package.

Choose the File which we download from above step.

Click open and Import the package certificate .

Select All files while importing.

  • Click Import selected elements
  • Once done we should be able to see the VMwareCode folder and Rename VM workflow.
  • Click on Rename VM workflow and click on edit
  • Click on Not SET for Host which is highlighted and choose the IAAS host from VRA plugin.
  • Click Select and Save and close and continue anyway — This step is required to get the value of VM and update the value
  • VRO configuration is done , Now lets configure the subscription in VRA.
  • To Configure the subscription login to vra and click on Administrator => Events => Subscription.
  • Click on New Subscription and choose the Machine Provisioning.
  • Click Next and Choose based on condition.
  • Click Next and Choose the workflow which we created in above step.
  • Click Next and choose the option for priority and blocking , Blocking means If workflow fails it will stop there and build will mark as failed.
  • Now Last step is left to create/edit the custom form for blueprint .
  • Go to the blueprint and click on custom form .
  • We will see the NewVMName field under the vSphere Machine section.

Once Done we are good to Test with provisioning
Note: I have choose HOST option also in my form which may not be available for you as this require separate configuration.

Here is the result of test provisioning.

How to delete deployment in VRA 8 using Python(API)

Often there are situation where deployment will get stuck in progress or We lost control to manage the deployment using GUI. In those situation we can utilize the APIs and get the task done.

But for VRA8 taking the bearer token is bit tedious task as we need to obtain 2 different token then make it as bearer token. To make it easier I have created Python Module where you just need to provide the Admin credentials and perform the operation .

To start the Process we need to meet the pre-requisites which are explain in below steps.

No need to worry about if you are not from python background or do not know code, Just follow the below instruction and we are good .

  1. Please follow the detailed instruction Here python installation and required module before we use this module –Do not skip this step.
  2. Download the file from Above and unzip and copy the file by name VRA8 and paste the file in directory where python is installed
    general path in windows is : C:\Users\Administrator\AppData\Local\Programs\Python\Python39
  3. I am using Python 3.9 for example ,It will be different as per your version.
  4. Once the step 1-3 is completed , all we need to do is run the below commands.
from VRA8 import vraClass
as1 =vraClass(vrafqdn="", username="administrator", password="VMware123!")

as1.getDeployments() -By Default this will list the 10000 deployment , We need to get the deployment ID from the list.

As we see , I have total 22 deployment in my environment and Now I will trigger the delete deployment request for deployment name Test11 for that ID is -6130ead4-638f-4050-ae7d-9279ee51ffa8.


Here response 202 means API has been triggered to delete . Now if we do getDeployment() again we only see 21 entries.

There are some additional function also which are part of this python module
Like getBlueprint() & releaseBlueprint()

Here is the quick look of both of them

as1.releaseBlueprint(id="cf9641b4-0242-4555-abae-26d8b72f542d", version=11)

Happy Learning , Feel free to share your queries and feedback on this .