Skip to content

Instantly share code, notes, and snippets.

@dlinsley
Created January 5, 2018 04:59
Show Gist options
  • Save dlinsley/e3933d2c72d87927cd8bbe2abc431036 to your computer and use it in GitHub Desktop.
Save dlinsley/e3933d2c72d87927cd8bbe2abc431036 to your computer and use it in GitHub Desktop.
Upgrade VMtools if needed
// VMware vRealize Orchestrator action sample
// Upgrades VMtool on a Virtual Machine if needed.
// Assumes vm tools .vib is part of ESXi host image profile
//
//
//Action Inputs:
// vm - VC:VirtualMachine
//
//Return type: void
var versionStatus = vm.guest.toolsVersionStatus2;
var upgradeNeeded = false;
if (versionStatus == "guestToolsBlacklisted") {
System.log("Current VMTools version blacklisted. Upgrading.");
upgradeNeeded = true;
} else if (versionStatus == "guestToolsCurrent") {
System.log("VMTools version is already current. Not upgrading");
upgradeNeeded = false;
} else if (versionStatus == "guestToolsNeedUpgrade") {
System.log("VMTools upgrade needed. Upgrading");
upgradeNeeded = true;
} else if (versionStatus == "guestToolsNotInstalled") {
throw("VMTools are not installed. Cannot upgrade");
} else if (versionStatus == "guestToolsSupportedNew") {
System.warn("VMtools are newer than available. Not upgrading");
upgradeNeeded = false;
} else if (versionStatus == "guestToolsSupportedOld") {
System.warn("VMTools are too old to upgrade");
upgradeNeeded = false;
} else if (versionStatus == "guestToolsUnmanaged") {
System.log("3rd party managed VMtools (open-vm-tools). Not upgrading");
upgradeNeeded = false;
} else {
throw("Unknown VMtools Version Status: "+versionStatus);
}
if (upgradeNeeded) {
task = vm.upgradeTools_Task();
}
System.getModule("com.vmware.library.vc.basic").vim3WaitTaskEnd(pool, true, 10);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment