VCF Automation Blog

from Stefan Schnell

Get Information about Plugins


/**
 * @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 -----------------------------------------------------------------

}

vcf automation orchestrator action to detect information about plugins

vcf automation orchestrator inventory with one plugin as example