vRO Extend VirtualDisk Workflow
https://vbombarded.wordpress.com/2015/02/20/vrealize-orchestrator-extend-virtual-disk-workflow/
var devices = vm.config.hardware.device; System.log(devices) for (i in devices){ if (devices[i].deviceInfo.label == diskString){ var disk = devices[i] System.log("Disk = " + disk.deviceInfo.label) } } var newSizeKB = disk.capacityInKB + (increaseSizeGB * 1024 * 1024) System.log("New Size KB = " + newSizeKB) var spec = new VcVirtualMachineConfigSpec(); spec.changeVersion = vm.config.changeVersion; spec.deviceChange = System.getModule("com.vmware.onyx").array(VcVirtualDeviceConfigSpec, 1); spec.deviceChange[0] = new VcVirtualDeviceConfigSpec(); spec.deviceChange[0].operation = VcVirtualDeviceConfigSpecOperation.edit; spec.deviceChange[0].device = new VcVirtualDisk(); spec.deviceChange[0].device.key = disk.key; spec.deviceChange[0].device.deviceInfo = new VcDescription(); spec.deviceChange[0].device.deviceInfo.label = disk.deviceInfo.label; spec.deviceChange[0].device.deviceInfo.summary = disk.deviceInfo.summary; spec.deviceChange[0].device.backing = new VcVirtualDiskFlatVer2BackingInfo(); spec.deviceChange[0].device.backing.fileName = disk.backing.fileName; spec.deviceChange[0].device.backing.diskMode = disk.backing.diskMode; spec.deviceChange[0].device.backing.split = disk.backing.split; spec.deviceChange[0].device.backing.writeThrough = disk.backing.writeThrough; spec.deviceChange[0].device.backing.thinProvisioned = disk.backing.thinProvisioned; spec.deviceChange[0].device.backing.uuid = disk.backing.uuid; spec.deviceChange[0].device.backing.contentId = disk.backing.contentId; spec.deviceChange[0].device.backing.digestEnabled = disk.backing.digestEnabled; spec.deviceChange[0].device.controllerKey = disk.controllerKey; spec.deviceChange[0].device.unitNumber = disk.unitNumber; spec.deviceChange[0].device.capacityInKB = newSizeKB; spec.deviceChange[0].device.shares = new VcSharesInfo(); spec.deviceChange[0].device.shares.shares = disk.shares.shares; spec.deviceChange[0].device.shares.level = disk.shares.level; spec.deviceChange[0].device.storageIOAllocation = new VcStorageIOAllocationInfo(); spec.deviceChange[0].device.storageIOAllocation.limit = disk.storageIOAllocation.limit; spec.deviceChange[0].device.storageIOAllocation.shares = new VcSharesInfo(); spec.deviceChange[0].device.storageIOAllocation.shares.shares = disk.storageIOAllocation.shares.shares; spec.deviceChange[0].device.storageIOAllocation.shares.level = disk.storageIOAllocation.shares.level; return vm.reconfigVM_Task(spec);