Use case is to deploy a vRA7 blueprint VIA API call
var jsonBody = {}; |
//jsonBody fill according to use |
jsonBody.username = restAuthUsername; |
jsonBody.password = restAuthPassword; |
jsonRequestBody = JSON.stringify(jsonBody); |
var request = restHost.createRequest("POST", "/csp/gateway/am/api/login?access_token", jsonRequestBody); |
request.contentType = "application/json"; |
request.setHeader("accept", "application/json"); |
//Attempt to execute the REST request |
try { |
response = request.execute(); |
jsonObject = JSON.parse(response.contentAsString); |
try{ |
var tokenResponse = jsonObject.refresh_token; |
System.log("token: " + tokenResponse); |
} catch (ex) { |
throw ex + " No valid token"; |
} |
} |
catch (e) { |
throw "There was an error executing the REST call:" + e; |
} |
//token |
var newstring = '{ "refreshToken": "'+jsonObject.refresh_token+'"}' |
|
var request = restHost.createRequest("POST", "/iaas/api/login", newstring); |
request.contentType = "application/json"; |
request.setHeader("Authorization", "Bearer " + tokenResponse); |
|
//Attempt to execute the REST request |
try { |
response = request.execute(); |
jsonObject = JSON.parse(response.contentAsString); |
try{ |
var tokenResponse = jsonObject.token; |
System.log("token: " + tokenResponse); |
} catch (ex) { |
throw ex + " No valid token"; |
} |
} |
catch (e) { |
throw "There was an error executing the REST call:" + e; |
} |
|
//Execute Deployment via API |
var blueprintId = "13h7b4ddf-89b6-9b69-b964-h7dc1c5d9c990" //Example blueprint ID |
var blueprintInputs = {} |
blueprintInputs.instances = instances |
blueprintInputs.environment = environment |
blueprintInputs.image = image |
blueprintInputs.network = network |
blueprintInputs.flavor = flavor |
var blueprintBody = {} |
blueprintBody.blueprintId = blueprintId |
blueprintBody.blueprintVersion = "1" |
blueprintBody.deploymentName = realDeploymentName |
blueprintBody.projectId = projectId |
blueprintBody.reason = "X" |
blueprintBody.inputs = blueprintInputs |
blueprintBodyString = JSON.stringify(blueprintBody) |
System.log(blueprintBodyString) |
var request = restHost.createRequest("POST", "/blueprint/api/blueprint-requests", blueprintBodyString); |
request.contentType = "application/json"; |
request.setHeader("accept", "application/json"); |
request.setHeader("Authorization", "Bearer " + tokenResponse) |
|
//Execute the REST request |
try { |
response = request.execute(); |
jsonObject = JSON.parse(response.contentAsString); |
var deploymentId = jsonObject.deploymentId |
System.log(jsonObject.deploymentId) |
System.log(response.contentAsString) |
} |
catch (e) { |
throw "There was an error executing the REST call:" + e; |
} |
System.log ("Deployment id: " + deploymentId) |
//Check deployment status |
|
var request = restHost.createRequest("GET","deployment/api/deployments/" + deploymentId); |
request.contentType = "application/json"; |
request.setHeader("accept", "application/json"); |
request.setHeader("Authorization", "Bearer " + tokenResponse) |
do{ |
System.sleep(60 * 1000) |
try { |
response = request.execute(); |
System.log (response.statusCode); |
jsonObject = JSON.parse(response.contentAsString); |
System.log (jsonObject); |
System.log(response.contentAsString) |
System.log ("REST request executed successfully"); |
System.log ("Current deployment status is: " + jsonObject.status) |
} |
catch (e) { |
System.error("Error executing the REST operation: " + e); |
} |
} |
while (jsonObject.status != 'CREATE_SUCCESSFUL') |
System.log("Deployment is now ready to change owner") |
|
// USER change |
var ownerBodyString = JSON.stringify({ |
"actionId": "Deployment.ChangeOwner", |
"targetId": deploymentId, |
"inputs": { |
"New Owner": ownerId |
} |
}) |
|
|
var request = restHost.createRequest("POST", "/deployment/api/deployments/"+deploymentId+"/requests", ownerBodyString); |
request.contentType = "application/json"; |
request.setHeader("accept", "application/json"); |
request.setHeader("Authorization", "Bearer " + tokenResponse) |
|
//Attempt to execute the REST request |
try { |
response = request.execute(); |
System.log (response.statusCode); |
jsonObject = JSON.parse(response.contentAsString); |
System.log(response.contentAsString) |
} |
catch (e) { |
throw "There was error executing the call:" + e; |