@@ -454,7 +454,7 @@ public Answer cloneVolumeFromBaseTemplate(CopyCommand cmd) {
454454 String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
455455
456456 try {
457- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
457+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
458458 if (vmMo == null ) {
459459 throw new Exception ("Unable to create a dummy VM for volume creation" );
460460 }
@@ -640,7 +640,7 @@ private Pair<String, String> copyVolumeToSecStorage(VmwareHostService hostServic
640640 if (vmMo == null || VmwareResource .getVmState (vmMo ) == PowerState .PowerOff ) {
641641 // create a dummy worker vm for attaching the volume
642642 DatastoreMO dsMo = new DatastoreMO (hyperHost .getContext (), morDs );
643- workerVm = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVmName );
643+ workerVm = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVmName , null );
644644
645645 if (workerVm == null ) {
646646 String msg = "Unable to create worker VM to execute CopyVolumeCommand" ;
@@ -774,7 +774,7 @@ private Ternary<String, Long, Long> createTemplateFromVolume(VirtualMachineMO vm
774774
775775 // 4 MB is the minimum requirement for VM memory in VMware
776776 Pair <VirtualMachineMO , String []> cloneResult =
777- vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()));
777+ vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()), null );
778778 clonedVm = cloneResult .first ();
779779
780780 clonedVm .exportVm (secondaryMountPoint + "/" + installPath , templateUniqueName , false , false );
@@ -1098,9 +1098,11 @@ private Pair<String, String[]> exportVolumeToSecondaryStroage(VirtualMachineMO v
10981098 throw new Exception (msg );
10991099 }
11001100
1101+ String virtualHardwareVersion = String .valueOf (vmMo .getVirtualHardwareVersion ());
1102+
11011103 // 4 MB is the minimum requirement for VM memory in VMware
11021104 Pair <VirtualMachineMO , String []> cloneResult =
1103- vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()));
1105+ vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()), virtualHardwareVersion );
11041106 clonedVm = cloneResult .first ();
11051107 String disks [] = cloneResult .second ();
11061108
@@ -1175,7 +1177,7 @@ public Answer backupSnapshot(CopyCommand cmd) {
11751177 if (vmMo == null ) {
11761178 dsMo = new DatastoreMO (hyperHost .getContext (), morDs );
11771179 workerVMName = hostService .getWorkerName (context , cmd , 0 );
1178- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVMName );
1180+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVMName , null );
11791181 if (vmMo == null ) {
11801182 throw new Exception ("Failed to find the newly create or relocated VM. vmName: " + workerVMName );
11811183 }
@@ -1563,7 +1565,7 @@ public Answer createVolume(CreateObjectCommand cmd) {
15631565 String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
15641566 try {
15651567 s_logger .info ("Create worker VM " + dummyVmName );
1566- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
1568+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
15671569 if (vmMo == null ) {
15681570 throw new Exception ("Unable to create a dummy VM for volume creation" );
15691571 }
@@ -1910,7 +1912,7 @@ private void createVmdk(Command cmd, DatastoreMO dsMo, String vmdkDatastorePath,
19101912
19111913 String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
19121914
1913- VirtualMachineMO vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
1915+ VirtualMachineMO vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
19141916
19151917 if (vmMo == null ) {
19161918 throw new Exception ("Unable to create a dummy VM for volume creation" );
0 commit comments