2017-09-20 12 views
1

私は非常にVM웨어を使い慣れていません。テンプレートからVMを作成する際に、ハードディスクのサイズを変更する必要があります。基本的にそのクローニング。しかし、私がexcecuteしようとすると私にエラー "指定されたパラメータが正しくないdevice.key"が表示されます。Javaでvmwareのテンプレートから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への呼び出しでこのキーを使用します。

関連する問題