vRO : Retrieve NSX edge load balancer VIP provisioned by vRA

Ce message est également disponible en : Anglais

Today, on this blog post i will show you how to retrieve the NSX Edge Load Balancer VIP provisioned by vRA.

Currently i am using 3 VMware components in my LAB : vRealize Automation 7.0 , vRealize Orchestrator 7.0.1 and NSX 6.2.

I have created a blueprint for the provisioning of 2 VMs behind a load balancer.

In my lab, i want to retrieve all the load balancer’s VIP provisioned by vRA in NSX. I will used API call for this work and vRO script to achieve my goal.

So, the first thing to do :

In vRO you have to create a HTTP Rest HOST. In my exemple , it will be https://NSXMANAGER/API/



Create a new workflow and use a generic « Scriptable Task« .  I will simply named it « Retrieve Edge ».


The only input that i will add on this generic scriptable task is the « rest host » (My NSX Manager).


In the « Scripting » tab, we will first retrieve all the Edge located in the NSX Manager. We will use this URL . https://NSXMANAGER/API/4.0/edges/

var request = restHost.createRequest("GET", "4.0/edges/");  //Get all Edge
request.contentType = "application/xml";
System.log("Check all Edge - Request URL: " + request.fullUrl); //Display request URL
var response = request.execute();

if(response.statusCode != 200) throw("Could not GET edge list ! : " + response.statusCode + "n" + response.contentAsString);
var edgelistXML = new XML(response.contentAsString); //Convert response as String


Then, we have to create a list of Edges created by vRA. In this case, vRA create a description with the value « Edge provisioned and managed by VMware vRealize Automation ». So basically , we just have to found a match.

We will have a list of Edge’s ID provisioned by VRA.

// Get EdgeSummary node 

var EdgeList = edgelistXML.edgePage.edgeSummary;

//Check for EdgeID provisioned by vRA.

var EdgeID = [];

for each (var edge in EdgeList) {
if (edge.description.text() == "Edge provisioned and managed by VMware vRealize Automation") {

if (EdgeID.length == null) throw("No Edge found");

System.log("Edge-Id found :"+EdgeID);

Finally, if a match is found, we have to retrieve the VIP of our Edge based on our Edge ID. We have to call a « GET » on this URL : https://NSXMANAGER/API/4.0/edges/edge-id

//Check for VIP

var EdgeIP = [];

for each(var ID in EdgeID) {
var request = restHost.createRequest("GET", "4.0/edges/"+ID);
request.contentType = "application/xml";
System.log("Check VIP on Request URL: " + request.fullUrl);
var response = request.execute();
if(response.statusCode != 200) throw("Could not GET edge from ID ! : " + response.statusCode + "n" + response.contentAsString);
var edgeconfXML = new XML(response.contentAsString);

System.log("Edge IP :"+EdgeIP);


Then you will display the VIP of your NSX Edge Load Balancer provisioned by vRA.


On my next post, i will show you how to add a VM in a existing load balancer.


Laisser un commentaire