Hi,
Can anyone please let me know how to create new-vmdk in a datasore.
I know how attach an existing vmdk. (below is the code snippet). Do i need to tweak anything to create vmdk?
virtualDisk.controllerKey = 1000; virtualDisk.controllerKeySpecified =true; virtualDisk.unitNumber = (int)taskSpec.Location; virtualDisk.unitNumberSpecified =true; virtualDisk.capacityInKB = 1024 * 1024; //backing file info virtualDisk.backing =new VirtualDiskFlatVer2BackingInfo(); ((VirtualDiskFlatVer2BackingInfo)virtualDisk.backing).fileName = taskSpec.Path; ((VirtualDiskFlatVer2BackingInfo)virtualDisk.backing).datastore = ds.mor; ((VirtualDiskFlatVer2BackingInfo)virtualDisk.backing).diskMode = "persistent"; //config spec VirtualDeviceConfigSpec vdConfigSpecEdit = new VirtualDeviceConfigSpec(); vdConfigSpecEdit.device = virtualDisk; vdConfigSpecEdit.operation =VirtualDeviceConfigSpecOperation.add; vdConfigSpecEdit.operationSpecified =true; vdConfigSpecEdit.fileOperationSpecified =false; VirtualMachineConfigSpec vmConfigSpecEdit = new VirtualMachineConfigSpec(); vmConfigSpecEdit.deviceChange =new VirtualDeviceConfigSpec[1]; vmConfigSpecEdit.deviceChange[0] = vdConfigSpecEdit; ManagedObjectReference result = this.ServiceUtil.GetConnection().Service.ReconfigVM_Task( this.m_vmIdMorMap[taskSpec.VmGuid].obj, vmConfigSpecEdit); TaskInfo reconfigVMTaskInfoEdit = (TaskInfo)this.ServiceUtil.getObjectProperty(result, "info"); while (reconfigVMTaskInfoEdit.state != TaskInfoState.success && reconfigVMTaskInfoEdit.state != TaskInfoState.error) { Thread.Sleep(1000); reconfigVMTaskInfoEdit = ( TaskInfo)this.ServiceUtil.getObjectProperty(result, "info"); //have some timeout here. }
Any help or suggestions are greatly appreciated. I tried to look at the PowerCLI code, but its using interop calls rather than VIMService. So i dont know how to proceed with this problem.
Thanks in Advance,
Regards,
Dreamer