2017-09-20 2 views
1

저는 VM웨어를 매우 신축적으로 사용하고 있습니다. 템플릿에서 VM을 생성하는 동안 하드 디스크 크기를 변경해야한다는 요구 사항이 있습니다. 기본적으로 복제. 하지만 내가 excecute하려고하면 "지정된 매개 변수가 올바르지 않습니다 device.key"오류가 발생합니다.자바에서 VM웨어의 템플릿에서 VM을 복제하는 동안 디스크 크기를 변경하십시오.

여기 도와주세요. VM이 고유 키가의

VirtualMachineRelocateSpec relocateSpec = new VirtualMachineRelocateSpec(); 
VirtualMachineCloneSpec cloneSpec = new VirtualMachineCloneSpec(); 
VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec(); 
diskSpec.setOperation(VirtualDeviceConfigSpecOperation.edit); 
VirtualDisk vd = new VirtualDisk(); 
long diskSizeKB = 1000000; 
int cKey = 1000; 
vd.setCapacityInKB(diskSizeKB); 
diskSpec.setDevice(vd); 
vd.setControllerKey(cKey); 
vd.setKey(1); 
vd.setUnitNumber(2); 
VirtualDiskFlatVer2BackingInfo diskfileBacking = new VirtualDiskFlatVer2BackingInfo(); 
String fileName = "[TestDataStore]"; 
diskfileBacking.setFileName(fileName); 
diskfileBacking.setDiskMode("persistent"); 
diskfileBacking.setThinProvisioned(true); 
vd.setBacking(diskfileBacking); 
relocateSpec.setDatastore(vmInstace.getDatastores()[0].getMOR()); 
relocateSpec.setHost(hostSystem.getMOR()); 
relocateSpec.setPool(resourcePool.getMOR()); 
cloneSpec.setPowerOn(false); 
cloneSpec.setLocation(relocateSpec); 
VirtualMachineConfigSpec vmSpec = new VirtualMachineConfigSpec(); 
vmSpec.setMemoryMB(4000L); 
vmSpec.setNumCPUs(3); 
vmSpec.setDeviceChange(new VirtualDeviceConfigSpec[] {diskSpec}); 
cloneSpec.setConfig(vmSpec); 
Task task = vmInstace.cloneVM_Task((Folder) vmInstace.getParent(),"TestVM", cloneSpec); 

답변

0

각 장치 (디스크, 컨트롤러 등) :

여기 내 코드입니다. VM 구성 변경 작업 방식은 변경하려는 장치의 key과 새 구성을 제공하는 것입니다.

코드에서 vd.setKey(1)을 호출하면 VMware에서 잘못된 key을 제공했다고 말합니다.

여기서 1을 얻었습니까? 추측해야만한다면, 그것은 임의로 선택되었습니다. 템플릿의 구성을보고 거기에서 디스크 장치 키를 추출해야합니다. 그런 다음 vd.setKey에 대한 호출에서이 키를 사용하십시오.

관련 문제