So I've written a scriptable task
var vms = new Array(); getVMsOfPool(cluster.resourcePool); function getVMsOfPool(pool) { vms = vms.concat(pool.vm); var pools = pool.resourcePool; if (pools != null) { for (index in pools) { if (pools[index] != null) getVMsOfPool(pools[index]); } } } System.log(vms) for (i=0; i<vms.length; i++) { var spec = System.getModule("com.vmware.onyx").array(VcResourceConfigSpec, 1); spec[0] = new VcResourceConfigSpec(); spec[0].entity = Server.findForType("VC:VirtualMachine", vms[i].vimHost.id + vms[i]);; spec[0].cpuAllocation = new VcResourceAllocationInfo(); spec[0].memoryAllocation = new VcResourceAllocationInfo(); spec[0].memoryAllocation.limit = -1; vms[$i].updateChildResourceConfiguration(spec); // ResourcePool }
and the error i get is: Property or method ‘entity’ not found on object
VcResourceConfigSpec
I do have a cluster input of VC Compute cluster type... Do I need to load anything for the onxy code?
Eric, I'm unsure of how/why that is not working because that object does appear to have an entity property when reviewing in the API explorer. Hopefully someone from Engineering can provide a response. Until then, I would try something a little more like this:
var vms = new Array(); getVMsOfPool(cluster.resourcePool); function getVMsOfPool(pool) { vms = vms.concat(pool.vm); var pools = pool.resourcePool; if (pools != null) { for (index in pools) { if (pools[index] != null) getVMsOfPool(pools[index]); } } } System.log(vms); for (i=0; i<vms.length; i++) { try{ var spec = new VcVirtualMachineConfigSpec(); spec.cpuAllocation = new VcResourceAllocationInfo(); spec.memoryAllocation = new VcResourceAllocationInfo(); spec.memoryAllocation.limit = -1; } catch(ex){ throw "Unable to create VcVirtualMachineConfigSpec: "+ex; } // Try to reconfig the vm now: if(spec instanceof VcVirtualMachineConfigSpec){ task = vms[$i].reconfigVM_Task(spec); //System.log("Spec: "+spec); } }
With the code above, you would set an out parameter for your scriptable task for a "task"object which you would then pass to a "vim3WaitTaskEnd" action.
I hope this helps you along
Visit me at for vCenter Orchestrator tips and tutorials
nice, that works well!
now if i could just figure out the code above