In some cases it may be necessary or simply interesting to find out which version of the VMware Orchestrator is being used during the runtime of a JavaScript action. Here an approach to detect the current Orchestator version.

To get the source code move your mouse pointer into the source code section and press on the upper right side the copy button. This copies the source code to the clipboard and now it can be pasted and saved into your target.
/**
 *
 * @module de.stschnell
 *
 * @version 0.1.0
 *
 * @outputType String
 *
 */

function getOrchestratorVersion() {

/**
 * Detects the VMware Aria Orchestration version.
 *
 * Parts of the code are from Mischa Buijs from
 * https://be-virtual.net/vrealize-orchestrator-identifying-version-running/
 *
 * @author Stefan Schnell <mail@stefan-schnell.de>
 * @license MIT
 * @version 0.1.0
 *
 * Checked with VMware Aria Automation 8.12.0 and 8.14.0.
 */

/**
 * https://[yourFqdn]/vco/api/about delivers the following XML:
 *
 * <ns2:about-info>
 *   <ns2:build-number>22610007</ns2:build-number>
 *   <ns2:build-date>2023-10-14T16:17:05Z</ns2:build-date>
 *   <ns2:version>8.14.0.22610007</ns2:version>
 *   <ns2:api-version>8.x</ns2:api-version>
 *   <ns2:time-zone>
 *     <ID>GMT</ID>
 *     <rawOffset>0</rawOffset>
 *   </ns2:time-zone>
 *   <ns2:features/>
 *   <ns2:id>302e3139-3630-3532-3337-343132333136</ns2:id>
 * </ns2:about-info>
 */

/**
 * The JVM options of the Orchestration are specified in the JVM_OPTS
 * environment variable.
 */
// var command = new Command("printenv JVM_OPTS");
// command.execute(true);
// var jvmOpts = command.output;
var jvmOpts = java.lang.System.getenv("JVM_OPTS");
if (jvmOpts !== null) {

  var fqdn = "";
  var options = jvmOpts.split(" ");
  options.forEach( function(option) {
    // -D sets an environment variable.
    if (option.substring(0, 19) === "-Dvco.app.hostname=") {
      fqdn = option.substring(19, option.length);
    }
  });
  if (fqdn !== "") {

    url = "http://" + fqdn + "/vco/api/about";
    try {
      var urlObject = new URL(url);
      var result = urlObject.getContent() ;
    } catch (exception) {
      url = "https://" + fqdn + "/vco/api/about";
      try {
        var urlObject = new URL(url);
        var result = urlObject.getContent() ;
      } catch (exception) {
        throw "Could not find Aria Automation Orchestrator (" +
          exception.message + ")";
      }
    }

    try {

      var jsonObject = JSON.parse(result);
      var aboutVersion = jsonObject.version;
      var aboutBuildNumber = jsonObject["build-number"];
      var aboutBuildDate = jsonObject["build-date"];
      var aboutApiVersion = jsonObject["api-version"];

      System.log(fqdn);
      System.log("Version: " + aboutVersion);
      System.log("Build number: " + aboutBuildNumber);
      System.log("Build date: " + aboutBuildDate);
      System.log("API Version: " + aboutApiVersion);

      return aboutVersion;

    } catch (exception) {
      throw "Error at JSON object (" + exception.message + ")";
    }

  }

}

}

vmware aria orchestrator version detection



This site is part of blog.stschnell.de