/**
* @module de.stschnell
*
* @version 0.1.0
*
* @param {string} in_userName
* @param {SecureString} in_password
*
* @outputType Properties
*
* @description Detect information about installed plugins
*
* Hint: Set com.vmware.scripting.javascript.allow-native-object to true
*/
function getInformationAboutPlugins(in_userName, in_password) {
// Begin ---------------------------------------------------------------
function getFQDN() {
var fqdn = "";
var jvmOpts = java.lang.System.getenv("JVM_OPTS");
if (jvmOpts !== null) {
var options = jvmOpts.split(" ");
options.forEach( function(option) {
if (option.substring(0, 19) === "-Dvco.app.hostname=") {
fqdn = option.substring(19, option.length);
}
});
if (fqdn !== "") {
return fqdn;
}
}
return null;
}
function main() {
var restHost = RESTHostManager.createTransientHostFrom(
RESTHostManager.createHost("dynamicRequest")
);
restHost.url = "https://" + getFQDN();
// Get the token for API call
var login = JSON.stringify({
"username": in_userName,
"password": in_password
});
var request = restHost.createRequest(
"POST", "/csp/gateway/am/api/login?access_token", login
);
request.contentType = "application/json";
var response = request.execute();
var refreshToken = "{\"refreshToken\":\"" +
JSON.parse(response.contentAsString).refresh_token + "\"}";
var request = restHost.createRequest(
"POST", "/iaas/api/login", refreshToken
);
request.contentType = "application/json";
var response = request.execute();
var bearerToken = JSON.parse(response.contentAsString).token;
var request = restHost.createRequest(
"GET", "/vco/api/plugins"
);
request.setHeader("Content-Type", "application/json");
request.setHeader("Accept", "application/json");
request.setHeader("Authorization", "Bearer " + bearerToken);
var response = request.execute();
System.log(response.contentAsString);
return JSON.parse(response.contentAsString);
}
return main();
// End -----------------------------------------------------------------
}
|