/* Begin----------------------------------------------------------------
 *
 * Delivers the csp-auth-token (CSP = Cloud Service Platform) or the
 * refresh_token with the Bearer-Token for the vRA HOL.
 *
 * @author Stefan Schnell
 *
 * Checked with vRA 8.5.1.18666
 *
 */

var restHost = RESTHostManager.createHost("dynamicRequest");
var httpRestHost = RESTHostManager.createTransientHostFrom(restHost);

httpRestHost.operationTimeout = 60;
httpRestHost.connectionTimeout = 30;
httpRestHost.hostVerification = false;
httpRestHost.url = "https://vr-automation.corp.local";

var oLogin = {
  "username": "holadmin@corp.local",
  "password": "VMware1!"
}
var jsonLogin = JSON.stringify(oLogin);

// csp-auth-token-------------------------------------------------------
// var request = httpRestHost.createRequest("POST",
//   "/csp/gateway/am/api/login", jsonLogin);

// refresh_token--------------------------------------------------------
var request = httpRestHost.createRequest("POST",
  "/csp/gateway/am/api/login?access_token", jsonLogin);

request.contentType = "application/json";

// Execute REST Request-------------------------------------------------
System.log("REST Request: POST " + request.fullUrl);
var response = request.execute();

// REST call output-----------------------------------------------------
System.log("REST Response Status Code: " + response.statusCode);
System.log("REST Response Content: " + response.contentAsString);


// Bearer token---------------------------------------------------------
var oRefreshToken = JSON.parse(response.contentAsString);
var refreshToken = "{\"refreshToken\":\"" + oRefreshToken.refresh_token +
  "\"}";

request = httpRestHost.createRequest("POST",
  "/iaas/api/login", refreshToken);
request.contentType = "application/json";

// Execute REST Request-------------------------------------------------
System.log("REST Request: POST " + request.fullUrl);
response = request.execute();

// REST call output-----------------------------------------------------
System.log("REST Response Status Code: " + response.statusCode);
System.log("REST Response Content: " + response.contentAsString);


var oBearerToken = JSON.parse(response.contentAsString);
var bearerToken = oBearerToken.token;
System.log(bearerToken);

// End------------------------------------------------------------------