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